一些背景
是否有一种方法来限制要执行的测试用例的数量?像..
pytest -vv --limit 1
或
使用conftest.py?
答案 0 :(得分:1)
您可以通过多种方式限制测试数量。例如,您可以通过传递其全名作为参数来执行单个测试:
$ pytest tests/test_spam.py::TestEggs::test_bacon
将仅运行模块test_bacon
中类TestEggs
中的测试方法tests/test_spam.py
。
如果您不知道确切的测试名称,可以通过执行找到它
$ pytest --collect-only -q
您可以结合使用这两个命令来执行有限的测试:
$ pytest -q --collect-only 2>&1 | head -n N | xargs pytest -sv
将首先执行N
收集的测试。
如果需要,您也可以自己实现--limit
参数。示例:
def pytest_addoption(parser):
parser.addoption('--limit', action='store', default=-1, type=int, help='tests limit')
def pytest_collection_modifyitems(session, config, items):
limit = config.getoption('--limit')
if limit >= 0:
items[:] = items[:limit]
现在上述命令等于
$ pytest --limit N