代码之家  ›  专栏  ›  技术社区  ›  Josh

有没有一种分发JUnit测试的方法,以便更快地完成所有测试?

  •  6
  • Josh  · 技术社区  · 14 年前

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

    3 回复  |  直到 8 年前
        1
  •  2
  •   Pascal Thivent    14 年前

    GridGain(一个自由云实现)能够将JUnit测试分布在一个节点集群上。见 Distributed JUnit Overview .

    以防万一,这不是您所要求的,但是testng可以并行运行测试(thi已经使您的构建更快)。见 Advanced parallel testing with TestNG and data providers .

    也见

        2
  •  0
  •   Yishai    14 年前

    在我的头脑中,有一个选择就是使用teamcity,并有不同的构建脚本,它们知道如何划分测试,并将它们设置为单独的项目(每个分区),然后设置n个代理,可以使用AmazonEC2实现,允许n的大值。

    因为你可能需要3个以上的代理商,你将离开他们的免费产品领域。

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

    如果有一个共同的数据库,这会使事情变得更加复杂,因为您需要为每个代理建立一个数据库,这样测试就不会相互干扰(当然,将计算能力分配给EC2可能是不现实的)。

        3
  •  0
  •   Jotschi    8 年前

    我做了一个概念验证,演示了如何使用Docker和Maven分发测试。

    可以使用Surefire插件的jvm参数在Docker容器中执行jvm,而不是直接在主机系统上执行。 此外,还需要以某种方式在Docker容器中提供测试项目文件系统和.m2存储库。

    〔1〕 https://github.com/Jotschi/swarmfire