python - pytest-xdist 管理文件顺序
问题描述
我有 10 个测试文件:
sc0 - 运行 4 分钟
sc1 - 运行 6 分钟
sc2 - 运行 6 分钟
sc3 - 运行 25 分钟
sc4 - 运行 25 分钟
sc5 - 运行 5 分钟
sc6 - 运行 5 分钟
sc7 - 运行 5 分钟
sc8 - 运行 6 分钟
sc9 - 运行 33 分钟
我使用下面的命令来并行运行测试(每个文件应该按顺序运行)
pytest -n 3 --dist loadfile --junit-xml=pytest-junit.xml -o junit_family=xunit2
我看到工作人员根据文件名顺序运行测试,总执行时间为 1 小时
分布是:
worker0 - sc0 (4m), sc3 (25m) 和 sc9 (33m) = 1h
worker1 - sc1 (6m), sc4 (25m) = 31m
worker2 - sc2 (6m), sc5 (5m), sc6 (5m), sc7 (5m), sc8 (6m) = 27m
但如果我能够控制工作人员拆分决定选择哪个文件,我可以节省 20m 的测试执行时间
worker0 - sc3 (25m), sc0 (4m), sc2 (6m), sc7 (5m) = 40m
worker1 - sc4 (25m), sc1 (6m), sc5 (5m), sc8 (6m) = 42m
worker2 - sc9 (33m), sc6 (5m) = 38m
如何控制 pytest-xdist 插件的测试文件分发顺序?(我不想重命名文件名)
解决方案
推荐阅读
- caldav - Baikal CalDAV:未找到“授权:基本”标头版本。0.6.0 MacOSX 日历
- javascript - 无法在水平可滚动的 div 中调整表格列的大小
- angularjs - 将 AngularJS 1.4 应用程序迁移到 Angular 8 的方法和方法
- azure - 如何从 .netcore 2 应用程序上的 azure 服务总线获取死信?
- node.js - 猫鼬填充功能不填充
- c# - 是否可以将索引添加到绑定?
- c# - 从 JSON 响应中打印特定值
- javascript - 在 JQuery 选项卡中动态加载数据表
- mysql - 根据 id 值对 MySQL 查询结果进行排序
- javascript - 使用 ajax 向数据库添加值而不重新加载或重定向页面