Для параллельного запуска pytests вам нужно установить pytest-xdist . Пожалуйста, ознакомьтесь с различными тактиками параллелизма, перечисленными ниже, вы можете использовать любую из них (однако я могу поспорить, что одна из них лучше всего подходит для вашего конкретного случая):
pip install pytest-xdist
# The most primitive case, sending tests to multiple CPUs:
pytest -n NUM
# Execute tests within 3 subprocesses.
pytest --dist=each --tx 3*popen//python=python3.6
# Execute tests in 3 forked subprocess. Won't work on windows.
pytest --dist=each --tx 3*popen//python=python3.6 --boxed
# Sending tests to the ssh slaves
pytest --dist=each --tx ssh=first_slave --tx ssh=seconds_slave --rsyncdir package package
# Sending tests to the socket server, link is available below.
python socketserver.py :8889 &
python socketserver.py :8890 &
pytest --dist=each --tx socket=localhost:8889 --tx socket=localhost:8890
Вы можете предоставить различные значения для параметра --dist
(-d
), который управляет распределением тестов по работникам, см. Документацию для получения дополнительной информации об использовании - dist .
ПРИМЕЧАНИЕ : После выполнения тестов socket_server.py не работает. Я предлагаю вам запустить сервер сокетов из отдельных окон терминала для целей отладки
Вы можете вводить более сложные потоки, например, запускать тесты внутри докер-контейнеров с запущенными сокет-серверами типа «pytest рабочие» и другой докер-контейнер, который связывается с ними и служит «pytest runner».