有没有办法在pytest.init下为我的测试设置不同的testpath。所以我可以执行类似的事情 pytest xx 然后所有测试用例都可以从一组多个直接执行 pytest yy 然后所有测试用例都可以从另一组多个直接执行 pytest all 然后所有测试用例都可以执行
到目前为止,我有。在unitA,unitB,unitC指导下的一组测试和在regressionA,regressionB,regressionC下的另一组测试。所以我不需要输入 pytest unitA,unitB,unitC pytest regressionA,regressionB,regressionC我的pytest.ini。
[pytest]
testpaths = unitA unitB
答案 0 :(得分:2)
可以将测试路径作为位置参数传递给pytest
。如果您使用* nix,则可以使用shell glob扩展来匹配多个目录:pytest unit*
将扩展为pytest unitA unitB unitC
。同样,pytest unit{A,C}
也会扩展为pytest unitA unitC
。
但是,如果需要自定义测试过滤或分组逻辑,还可以定义自己的参数。交换机--unit-only
的示例,它仅在unit
开头的目录中运行测试,忽略testpaths
中的pytest.ini
设置:
# conftest.py
import pathlib
import pytest
def pytest_addoption(parser):
parser.addoption('--unit-only', action='store_true', default=False, help='only run tests in dirs starting with "unit".')
def pytest_configure(config):
unit_only = config.getoption('--unit-only')
if unit_only:
config.args = [p for p in pathlib.Path().rglob('unit*') if p.is_dir()]