如何用pytest并行运行不同文件Python测试且单文件内顺序执行?
实现按文件并行、单文件内顺序执行的pytest方案
完全可以实现你的需求——让不同测试文件并行运行,同时保证单个文件内的测试按顺序执行。核心思路是利用pytest-xdist的分组执行功能,具体步骤如下:
1. 安装依赖
确保已安装pytest-xdist:
pip install pytest-xdist
2. 关键运行命令
使用以下命令启动测试:
pytest -n auto --dist=loadscope
-n auto:自动使用所有可用CPU核心(也可指定具体数量,比如-n 4)--dist=loadscope:将测试按模块(文件)或类分组执行。这意味着每个测试文件会作为一个整体分配给一个worker,文件内的所有测试会按顺序执行,而不同文件则在不同worker上并行运行。
3. 适配测试结构
- 将涉及机器启停的所有相关测试放在同一个文件中:这样它们会被分配到同一个worker,严格按顺序执行,避免并行冲突。
- 其他独立测试可以分散在不同文件中:这些文件会和启停测试文件同时并行运行,大幅节省整体耗时。
额外注意事项
- 如果你的测试使用类组织,
--dist=loadscope也会按类分组执行,类内的测试保持顺序。 - 确保并行运行的测试文件之间没有资源冲突(比如不要同时操作同一台机器),必要时为不同文件分配独立的测试资源。
内容的提问来源于stack exchange,提问作者Ivajlo Iliev
相关产品推荐
相关产品推荐

