如何并行执行用 pytest 编写的单元测试?我可以选择哪些并行策略?
为了并行运行 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.
NOTE:一旦执行测试套接字服务器.py已下降。我建议您从单独的终端窗口运行套接字服务器以进行调试
您可以引入更复杂的流程,例如在 docker 容器内运行测试,其中已启动套接字服务器(类似于“pytest 工作人员”)和另一个与它们通信并充当“pytest 运行程序”的 docker 容器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)