使用py.test xdist控制测试的分布

时间:2013-03-06 23:45:29

标签: python testing nose pytest

我想要并行运行几千个测试。测试是所有编译的二进制文件,它们返回代码为0或非零(失败时)。它们的一些未知子集尝试使用相同的资源(文件,端口等)。每个测试都假定它是独立运行的,如果资源不可用则报告失败。

我正在使用Python使用子进程模块启动每个测试,并且串行工作非常好。我查看了Nose的并行化,但我需要自动生成测试(将1000多个二进制文件中的每一个包装到使用子进程的Python类中),而Nose的多处理模块不支持并行化自动生成的测试。

我最终决定使用PyTest,因为它可以使用xdist插件通过SSH在远程主机上运行自动生成的测试。

但是,据我所知,xdist看起来不支持对测试如何分配的任何控制。我想给它一个N台机器池,每台机器运行一次。

PyTest / xdist是我想要的吗?如果没有,那么有没有可以做我正在寻找的工具?

1 个答案:

答案 0 :(得分:0)

我不确定这是否会有所帮助。但是如果你提前知道如何划分测试,而不是让pytest分发测试,你可以使用持续集成服务器为每台不同的机器调用不同的pytest。使用-k或-m选择测试子集,或者只是指定不同的测试目录路径,您可以控制哪些测试一起运行。

相关问题