2013-03-06 58 views
2

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

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

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

但是,据我所知,它看起来不像xdist支持任何形式的测试如何分布控制。我想给它一组N台机器,并且每台机器有一个测试运行。

PyTest/xdist是我想要的吗?如果没有,那里有一个工具可以做我想要的吗?

+0

你能找到一种方法来做到这一点py.test xdist? “我想给它一个N台机器池,并且每台机器都有一个测试运行” 如果不是使用xdist,您是否有任何其他解决方案? – sridhar249 2016-05-24 00:00:23

回答

0

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