当运行单元测试时,Gradle可以并行执行多个测试,而无需对测试本身进行任何更改(即特殊注释,测试运行器等)。我想用蚂蚁来实现同样的事情,但我不知道怎么做。
我看过这个问题,但是没有一个答案真正吸引我。它们要么涉及使用ant-contrib的hack,要么涉及使用@RunWith注释设置的特殊运行程序,以及其他一些特殊注释等。我也知道TestNG,但我不能让Eclipse插件迁移我们的测试——我们有大约10,000个测试,所以我不是手工做的!
Gradle不需要这些东西,那么我在ant中怎么做呢?我猜Gradle使用了一个特殊的运行器,但如果是这样,它是作为JUnit设置的一部分设置的,并且不会在每个测试中提到。如果是这样的话,那也没关系。我真的不想去修改c. 10,000个单元测试!
严格意义上讲,Gradle并没有使用特殊的JUnit运行器。它"只是"有一个复杂的测试任务,知道如何启动多个JVM,在每个JVM中运行测试类的子集(通过调用JUnit),并将结果报告给执行构建的JVM。在那里,结果被聚合起来,使其看起来像一个单jvm、单线程的测试执行。这甚至适用于定义了自己的测试侦听器的构建。
要在Ant中获得并行测试执行,您需要一个支持此特性的Ant任务(不确定是否存在)。另一种方法是将Ant构建导入Gradle (ant.importBuild "build.xml"
),并在Gradle端添加一个测试任务。