ant - 并行运行 JUnit 测试

标签 ant junit gradle

运行单元测试时,Gradle 可以并行执行多个测试,而无需对测试本身进行任何更改(即特殊注释、测试运行器等)。我想用 ant 实现同样的目标,但我不知道如何实现。

我见过this question但没有一个答案真正吸引我。它们要么涉及 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 端添加测试任务。

关于ant - 并行运行 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337886/

相关文章:

java - 如何将要编译的源列表传递给 javac 任务?

java - 查找未包含在任何套件中的 JUnit 3 测试?

java - Maven 在 Eclipse 中运行 JUnit 测试,但从命令行编译失败

android - 无法在Android Studio中完成 “Hello World”构建:preDexDebug,找不到路径

java - ANT 等待文件创建

java - 遍历文件集时出现问题

java - Gradle:无法在 Intellij 中设置未知属性 'classDumpFile'

java - 我可以用一个全新的项目覆盖 Git 存储库吗?

java - Ant 更好的方法 <sleep> 而不是跳过它

java - pom.xml Maven 配置以在混合 Java + Kotlin 项目中运行 JUnit 4 + JUnit 5 Jupiter 测试