我将Jenkins用于我的Android持续集成。我有一些独立的独立Robotium UI测试,目前需要12分钟才能在单个仿真器上连续运行。有人可以推荐一种并行运行它们的好方法,这样仅需6分钟(或更短的时间)吗?
我知道在多种设备/仿真器上并行运行完整测试套件的各种方法,例如,请参阅Jenkins Android仿真器插件,Spoon或AppThwack等云测试公司的“多配置(矩阵)”作业部分。
我知道如何通过使用JUnit注释来运行测试的特定子集,或者显然Spoon支持类似的功能(请参阅有关它的问题)。
我现在正在使用Spoon运行我的完整测试套件(主要是为了利用带有屏幕截图的可爱HTML输出)。如果有人对拆分测试并并行运行它们的最佳方法有建议,那就太好了。
我认为可以通过将测试分为两个单独的CI作业来实现这一点,但是听起来很难维持两个单独的作业并合并结果。
该答案是对我以前的MultiJob答案的改进。
我发现做到这一点的最佳方法是使用Jenkins Matrix作业(也称为“多配置项目”)。这真的很方便,因为您可以在单个Jenkins作业中配置所有内容。
Spoon现在支持一个--e
选项,该选项使您可以将参数直接传递给检测运行程序。我已经用“测试分片”一节更新了他们的README文件。
该自述文件应该可以为您提供所需的信息,但是如果有帮助,这是我们Jenkins作业配置的其他重点内容。
在User-defined Axis
奴隶的节点数集,我们要运行。我们必须将标签设置为,android
以便我们的云提供商可以启动适当的从属服务器。
我们有一个run-build.sh
脚本,可以使用正确的参数调用Spoon。我们需要传入总节点数(在本例中为6
),以及正在运行的特定从属节点的索引(自动存在于node_index
变量中)。
后期构建步骤应该与您现有的步骤相同。将来,我们可能需要添加一些内容以将结果收集到主节点上(这很难解决)。现在,您仍然可以单击以查看从站上的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句