有没有办法分发junit测试,以便更快地完成它们?

时间:2010-06-01 21:44:59

标签: unit-testing junit

我们的JUnits总共需要6个小时才能运行。有没有一种简单的方法可以在不同的机器上运行1 / n?

2 个答案:

答案 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可能会不切实际的)。