pytest 如何批量执行用例
时间: 2023-09-13 15:05:47 浏览: 94
pytest 可以通过指定目录或文件名来批量执行用例。具体的做法是:
1. 在终端中进入到测试用例所在的目录,或者直接指定测试用例文件。
2. 执行如下命令:
```
pytest [options] [dir_or_file]
```
其中,`[options]` 是 pytest 的参数选项,可以用来指定测试报告的输出格式、测试用例的筛选规则、并发执行的进程数等等。
`[dir_or_file]` 表示测试用例所在的目录或者测试用例文件名。
例如,如果测试用例文件名为 `test_sample.py`,则可以执行如下命令:
```
pytest test_sample.py
```
如果测试用例分散在多个文件中,可以执行如下命令:
```
pytest test_dir/
```
其中 `test_dir/` 表示测试用例所在的目录。这样,pytest 就会递归查找该目录下的所有测试用例并执行。
相关问题
pytest重复执行用例
如何解决?
你可以通过以下几种方式解决pytest重复执行用例的问题:
1. 使用maxfail参数,该参数表示当用例失败的次数达到指定的次数后,就停止执行测试用例。
2. 使用-x参数,该参数会在第一次测试用例失败后立即停止执行测试用例。
3. 使用--lf参数,该参数会在上次失败的测试用例之后继续执行未通过的测试用例。
4. 使用--ff参数,该参数会在第一次失败的测试用例之后停止执行测试用例,并且只重复执行最后一个失败的测试用例。
5. 检查测试用例代码中是否存在随机因素,如果存在则需要适当修改测试用例代码,避免重复执行会导致不同结果。
pytest的执行用例顺序
pytest默认的用例执行顺序是以文件名ASCII码顺序执行。如果需要改变执行顺序,可以使用pytest.mark.run(order=num)或pytest_collection_modifyitems函数进行控制。具体方法如下:
1. 在测试用例函数上方加上装饰器@pytest.mark.run(order=num),num为数字,表示执行顺序。例如:
```
import pytest
@pytest.mark.run(order=1)
def test_a():
assert True
@pytest.mark.run(order=2)
def test_b():
assert True
```
2. 在conftest.py文件中添加pytest_collection_modifyitems函数,通过修改item列表的顺序来控制用例执行顺序。例如:
```
def pytest_collection_modifyitems(items):
items.reverse()
```
以上两种方法可以单独使用,也可以一起使用。注意,使用pytest.mark.run(order=num)方式时,num不能重复;使用pytest_collection_modifyitems函数时,需要以列表的形式返回修改后的items。