微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

跨多个设备的pytest并行测试

如何解决跨多个设备的pytest并行测试

我有一个测试类,我想用它来测试多个设备。我正在为设备使用参数化,并使用 pytest-xdist 并行运行它们。我遇到的问题是负载平衡可以在运行测试的设备上启动新测试,导致新测试失败。有没有办法让每个工作人员从 xdist 开始只运行带有一个参数的测试,例如 worker1 为 d1 运行测试,然后为其他工作人员和设备退出相同的测试?

示例:

@pytest.mark.parametrize('device',['d1','d2','d3','d4'])
class MyTestClass:

     def test_1(self,device)

     def test_2(self,device)

     def test_3(self,device)

     def test_4(self,device)

我的 pytest 命令是 pytest -n4。虽然 test_1 在 d1 上运行,但在 d1 上无法执行任何其他操作,但测试需要按此顺序运行,这也是因为硬件 d4 比其他 3 个设备需要更长的时间来运行某些测试。例如,worker 4 使用 d4 启动 test_1,然后另一个 worker 完成其测试并使用 d4 启动 test_2,导致 test_2 失败。我尝试将 --dist 命令与 loadscope 一起使用。

我想到的唯一其他解决方案是将每个设备分解成一个单独的测试文件,但这似乎有太多重复的代码

提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。