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

Unit testing 有没有办法分发junit测试,以便更快地完成它们?,unit-testing,junit,Unit Testing,Junit,我们的JUnits总共需要6个小时才能运行。有没有一种简单的方法可以在n台不同的机器上运行其中的1/n台?我想,一种方法是使用TeamCity,使用不同的构建脚本,知道如何对测试进行分区,并将它们设置为单独的项目(每个分区),然后设置n个代理,这可以通过AmazonEC2实现,允许n的大值 由于您可能需要3个以上的代理商,因此您将被排除在他们的免费产品领域之外 这里有一些假设:没有将所有这些测试联系在一起的公共数据库,所有测试都可以独立运行 如果有一个通用的数据库,这会使事情变得更加复杂,因为每

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

我想,一种方法是使用TeamCity,使用不同的构建脚本,知道如何对测试进行分区,并将它们设置为单独的项目(每个分区),然后设置n个代理,这可以通过AmazonEC2实现,允许n的大值

由于您可能需要3个以上的代理商,因此您将被排除在他们的免费产品领域之外

这里有一些假设:没有将所有这些测试联系在一起的公共数据库,所有测试都可以独立运行

如果有一个通用的数据库,这会使事情变得更加复杂,因为每个代理都需要一个数据库,这样测试就不会互相影响(当然,将计算能力分散到EC2可能是不切实际的)。

GridGain(一个免费的云实现)能够跨节点集群分发JUnit测试运行。看

以防万一,这并不完全是您想要的,但是TestNG可以并行运行测试(这已经使您的构建速度加快了)。看

另见

似乎您正在见证;)我会看看为什么要花这么长时间才考虑并行运行它们。它们目前是如何运行的?forkMode设置为什么?关于TestNG的注释。TestNG可以分布式运行,也可以并行运行