2011-09-07 257 views
5

运行单元测试时,Gradle可以并行执行多个测试,而不会对测试本身(即特殊注释,测试运行器等)进行任何更改。我想用蚂蚁做同样的事情,但我不知道如何。并行运行JUnit测试

我见过this question但没有一个答案真的吸引我。它们或者涉及到带有ant-contrib的黑客,使用@RunWith注释设置的特殊跑步者,一些其他特殊注释等。我也了解TestNG,但是我不能让Eclipse插件迁移我们的测试 - 并且我们有大约10,000个,所以我不是亲手做的!

Gradle不需要任何东西,所以我如何在蚂蚁中做到这一点?我想Gradle使用了一个特殊的跑步者,但是如果是这样的话,它会被设置为JUnit设置的一部分,并且在每个测试中都没有提及。如果是这样的话,那很好。我只是不想去修改c。 10,000个单元测试!

回答

6

Gradle并未严格意义上使用特殊的JUnit跑步者。它“简单地”有一个复杂的测试任务,知道如何启动多个JVM,在每个JVM中运行测试类的子集(通过调用JUnit),并将结果报告给执行构建的JVM。这些结果被汇总起来,使它看起来像一个单一的JVM,单线程的测试执行。这甚至适用于定义他们自己的测试监听器的构建。

要在Ant中执行并行测试,您需要一个支持此功能的Ant任务(不确定是否存在)。另一种方法是将Ant构建导入Gradle(ant.importBuild "build.xml")并在Gradle端添加测试任务。

+0

嗯,这是一个有趣的想法。我很惊讶,这样的事情在蚂蚁中并不存在,说实话。 – dty