2010-12-09 64 views
2

我花了相当多的时间来查看我们当前的构建过程,试图将整个增量构建恢复到10分钟标记(当前为1小时)。在我们的构建中最大的时间消耗似乎是大量的单元测试,由于某种原因,需要相当多的时间才能执行。Maven插件来分配单元测试执行

最近,我试验了在少量刀片上分发单元测试的执行。这将junit测试的整体执行时间增加到了一个非常容忍的范围,但需要在CI框上进行大量的手动脚本和管理才能保持测试正常工作。理想情况下,我想在主节点上编译源代码,使用分布式surefire插件来联合运行单元测试,然后使用主节点打包结果。目前我没有看到使用分布式编译器的重大收益。

其他人是否将单元测试执行分布在多个框中?有没有任何插件(商业或开源),使这个过程更容易管理?任何有关其他人如何解决(或不解决)这个问题的见解都将不胜感激。

回答

0

可以使用surefire插件并覆盖默认的JVM参数。通过这种方式,可以使用自定义脚本,反过来,它将分叉一个新的Docker容器,该容器将从容器内运行JVM。容器必须能够访问主机文件系统以访问编译类和其他资源。我创建了一个小型的概念项目证明来说明使用SSHFS的解决方案。

https://github.com/Jotschi/docker-junit-distribution-test

+0

注意,[只有链路答案](http://meta.stackoverflow.com/tags/link-only-answers/info)气馁,SO答案应的终点寻找一个解决方案(而不是另一个引用的中途停留,这往往会随着时间推移而变得陈旧)。请考虑在此添加独立的摘要,并将链接保留为参考。 – kleopatra 2015-09-14 14:52:58