I am calling all tests under a directory using pytest. How can I run one-specific test case last?
python -m pytest ../testdir
../testdir/test_1.py.... test_n.py
I am calling all tests under a directory using pytest. How can I run one-specific test case last?
python -m pytest ../testdir
../testdir/test_1.py.... test_n.py
You can easily change the default test execution order by implementing your own pytest_collection_modifyitems hook. Create a file conftest.py with the following contents:
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)
In this example, if a test function named test_1 is collected, it will be shifted to the end of the items list. Replace test_1 with your own function name, or even make it configurable via command line arguments.