我们的JUnits总共需要6个小时才能运行。有没有一种简单的方法可以在不同的机器上运行1 / n?
答案 0 :(得分:2)
GridGain(一个免费的云实现)能够在一组节点上分发JUnit测试。请参阅Distributed JUnit Overview。
为了以防万一,这不是你要求的,但TestNG可以并行运行测试(这会使你的构建更快)。请参阅Advanced parallel testing with TestNG and data providers。
答案 1 :(得分:0)
在我的脑海中,一个选项是使用TeamCity并拥有不同的构建脚本,这些脚本知道您希望如何对测试进行分区,并将它们设置为单独的项目(每个分区),然后设置n个代理,可以使用Amazon EC2完成,允许大的n值。
由于您可能需要超过3个代理商,因此您将无法进入其免费产品领域。
这里有一些假设:没有将所有这些测试联系在一起的通用数据库,所有测试都可以相互独立地运行。
如果有一个共同的数据库,这会使事情变得更加复杂,因为你需要为每个代理提供一个数据库,这样测试就不会相互踩(当然,将计算能力转化为EC2可能会不切实际的)。