Running tests in parallel with pytest & xdist
When tests are taking too long to run, an easy way to speed them up is to run them in parallel.
When using pytest
as test runner, pytest-xdist
& pytest-parallel
plugins makes it easy to run tests concurrently or in parallel.
pytest-parallel
works better if tests are independent of each other. If tests are dependent on each other, pytest-xdist
is a better choice.
If there are parameterised tests, pytest-xdist will fail as the order of the tests is not guaranteed.
$ pytest -n auto tests/ Different tests were collected between gw0 and gw1. The difference is: ...
To fix this, we have to make sure that the parameterised tests are executed in the same order on all workers. It can be achieved by sorting the parameterised tests by their name.
Alternatively, we can use pytest-randomly
plugin to order the tests.
Need further help with this? I am available for hire.