pytest在目录中运行所有测试时,如何确定最后运行哪个测试?

时间:2019-06-26 23:37:48

标签: python pytest

我正在使用pytest调用目录下的所有测试。我如何最后运行一个特定的测试用例?

python -m pytest ../testdir  
../testdir/test_1.py.... test_n.py

1 个答案:

答案 0 :(得分:2)

您可以通过实现自己的pytest_collection_modifyitems挂钩轻松地更改默认的测试执行顺序。创建具有以下内容的文件conftest.py

def pytest_collection_modifyitems(items):
    test_name = 'test_1'
    test_index = next((i for i, item in enumerate(items) if item.name == test_name), -1)
    test_item = items.pop(test_index)
    items.append(test_item)

在此示例中,如果收集了名为test_1的测试函数,它将移至项目列表的末尾。将test_1替换为您自己的函数名称,甚至将其命名为configurable via command line arguments