pytest带参数执行
时间: 2023-08-22 20:08:36 浏览: 147
要在 Pytest 中带参数执行测试,可以使用 `pytest.mark.parametrize` 装饰器。这个装饰器允许你为测试函数提供多组参数,并根据这些参数运行多次测试。
以下是一个示例:
```python
import pytest
@pytest.mark.parametrize("input1, input2, expected", [
(1, 2, 3),
(4, 5, 9),
(10, -5, 5)
])
def test_addition(input1, input2, expected):
assert input1 + input2 == expected
```
在上面的例子中,`test_addition` 函数会被执行三次,分别使用不同的参数组合进行测试。每个参数组合都由括号中的值提供,例如 `(1, 2, 3)` 表示第一次执行时 `input1` 的值为 1,`input2` 的值为 2,`expected` 的值为 3。
要运行带参数的测试,只需在终端中运行 `pytest` 命令即可:
```bash
$ pytest
```
Pytest 会自动发现并运行带有 `test_` 前缀的函数,并使用参数化装饰器提供的参数进行测试。
相关问题
pytest多线程执行参数是什么
pytest是一个功能强大的Python测试框架,它支持多线程执行测试。在pytest中,可以使用`-n`或`--numprocesses`参数来指定并发执行的进程数量,实现多线程执行。
具体使用方式如下:
```
pytest -n <num_processes>
```
其中,`<num_processes>`是你想要并发执行的进程数量。例如,如果想要使用4个进程并发执行测试,可以使用以下命令:
```
pytest -n 4
```
这样pytest会将测试用例分配给4个并发进程,并行执行测试。请注意,多线程执行测试用例时,需要确保测试用例之间的相互依赖关系和资源竞争问题得到妥善处理,以避免出现意外的行为或错误结果。
pytest 常见参数
pytest常见参数包括:
1. -m:只运行匹配给定标记表达式的测试。可以使用pytest.mark关键字在测试函数上添加标记,然后使用-m参数指定要运行的标记。例如,pytest -m run_these将只运行被标记为run_these的测试函数。
2. --lf(last fail):缓存,只运行上次执行错误的用例。使用--lf参数可以只运行上次执行失败的测试用例。例如,pytest --lf将只运行上次执行失败的测试用例。
3. --assert=MODE:用于控制断言调试模式。可以使用plain模式来禁用断言调试,或者使用rewrite模式来重写测试模块中的assert语句以提供更详细的断言信息。
4. --reruns=n:失败后重运行的次数。使用pytest-rerunfailures插件可以在测试用例失败后自动重新运行。可以使用--reruns参数指定重运行的次数。
5. --count=n:重复运行的次数。使用pytest-repeat插件可以重复运行测试用例。可以使用--count参数指定重复运行的次数。
6. -n \[N, auto\]:多线程执行测试任务。使用pytest-xdist插件可以实现多线程并发执行测试用例。可以使用-n参数指定并发的进程数,或者使用auto来自动检测CPU数量。
7. --timeout=n:为测试设置时间限制。使用pytest-timeout插件可以为测试用例设置时间限制。可以使用--timeout参数指定时间限制,单位为秒。
8. --instafail:用例失败时立刻显示错误的堆栈回溯信息。使用pytest-instafail插件可以在测试用例失败时立即显示错误的堆栈回溯信息。
9. --sugar:显示色彩和进度条。使用pytest-sugar插件可以显示带有颜色和进度条的测试结果。
10. --selenium:借助浏览器完成自动化测试。使用pytest-selenium插件可以启动浏览器,打开网址,运行Web应用程序,填充表单等等。
#### 引用[.reference_title]
- *1* *2* [pytest常用参数](https://blog.csdn.net/summeryan2011/article/details/122998114)[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]
- *3* [【pytest】常见的 pytest 参数及插件](https://blog.csdn.net/waitan2018/article/details/104226251)[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 ]
阅读全文