pytest运行时-s
时间: 2023-08-22 17:14:35 浏览: 227
在pytest运行时,"-s"选项用于禁止捕获标准输出和标准错误,以便在控制台上实时显示打印的内容。这在调试和查看测试用例输出时非常有用。
#### 引用[.reference_title]
- *1* *2* *3* [pytest文档58-随机执行测试用例(pytest-random-order)](https://blog.csdn.net/qq_27371025/article/details/118404067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关问题
pytest 运行脚本 -k参数详解
`pytest` 是一个非常流行的 Python 测试框架,它提供了许多强大的功能来帮助开发者编写和运行测试。其中,`-k` 参数是一个非常有用的选项,它允许你根据表达式来选择要运行的测试用例。
### `-k` 参数详解
`-k` 参数用于指定一个表达式,只有匹配该表达式的测试用例才会被执行。这个表达式可以包含简单的字符串匹配、正则表达式等。
#### 基本用法
1. **简单字符串匹配**:
```bash
pytest -k "test_example"
```
这将运行所有名称中包含 `test_example` 的测试用例。
2. **正则表达式**:
```bash
pytest -k "test_[0-9]+"
```
这将运行所有名称匹配正则表达式 `test_[0-9]+` 的测试用例,即名称以 `test_` 开头并跟随一个或多个数字的测试用例。
3. **逻辑运算**:
你可以使用逻辑运算符(如 `and`, `or`, `not`)来组合多个条件。例如:
```bash
pytest -k "test_example and not test_exclude"
```
这将运行所有名称中包含 `test_example` 但不包含 `test_exclude` 的测试用例。
4. **排除测试**:
你还可以使用 `not` 关键字来排除某些测试用例。例如:
```bash
pytest -k "not slow"
```
这将运行所有名称中不包含 `slow` 的测试用例。
#### 示例
假设你有以下测试文件 `test_sample.py`:
```python
def test_fast():
assert True
def test_slow():
assert True
def test_example_1():
assert True
def test_example_2():
assert True
```
你可以使用不同的 `-k` 参数来运行特定的测试用例:
- 运行所有名称中包含 `example` 的测试用例:
```bash
pytest -k "example"
```
输出:
```plaintext
============================= test session starts =============================
...
collected 4 items / 2 deselected / 2 selected
test_sample.py::test_example_1 PASSED [ 50%]
test_sample.py::test_example_2 PASSED [100%]
============================= 2 passed in 0.02s =============================
```
- 运行所有名称中包含 `1` 的测试用例:
```bash
pytest -k "1"
```
输出:
```plaintext
============================= test session starts =============================
...
collected 4 items / 3 deselected / 1 selected
test_sample.py::test_example_1 PASSED [100%]
============================= 1 passed in 0.01s =============================
```
- 运行所有名称中包含 `fast` 但不包含 `slow` 的测试用例:
```bash
pytest -k "fast and not slow"
```
输出:
```plaintext
============================= test session starts =============================
...
collected 4 items / 3 deselected / 1 selected
test_sample.py::test_fast PASSED [100%]
============================= 1 passed in 0.01s =============================
```
###
pytest --=no
引用: pytest -s -v [demo.py](http://demo.py) --workers 1 --tests-per-worker 4。
引用: 利用pytest-parallel:1进程4线程运行 pytest -s -v demo.py --workers 1 --tests-per-worker 4。
引用: 发现新问题 当前版本的 pytest-parallel 和pytest-xdist 在python3.9上不兼容。
根据引用和引用,可以看出这是在使用pytest执行测试用例的命令。其中,`-s`参数表示输出详细日志信息,`-v`参数表示输出详细的测试结果信息,`--workers 1`参数表示使用一个进程来运行测试用例,`--tests-per-worker 4`参数表示每个进程运行4个测试用例。
然而,根据引用提到的问题,当前版本的pytest-parallel和pytest-xdist在Python 3.9上不兼容。这可能意味着在Python 3.9上无法使用`pytest-parallel`来实现多线程运行测试用例的功能。
至于`--=no`部分,根据提供的引用内容中没有相关信息,无法给出具体解释。请提供更多上下文或引用内容以获得更准确的回答。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [win-python-pytest(pytest-parallel/pytest-xdist)自动化测试多线程的验证](https://blog.csdn.net/Franciz777/article/details/120976872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文