如何在Gradle中为单个测试类并行执行JUnit测试

Mar*_*zak 12 java testing unit-testing spring-test gradle

我们有很多使用Spring的集成测试.我们不想为每个测试创建单独的JVM进程(maxParallelForks选项)或仅在多模块项目(--parallel)中运行并行构建.

我们希望单个测试类在Maven中并行执行测试,如http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html和并行测试选项

使用parallel选项时要记住的重要事项是:并发发生在同一个JVM进程中.

是否可以在Gradle中实现?

Mar*_*zak 4

@MariuszS 答案是最好的

Gradle 是没有 xml 的 ant,也许这可以帮助你 ant.apache.org/manual/Tasks/parallel.html :)

这里描述了实现它的最接近的方法 - https://discuss.gradle.org/t/how-to-use-ants-parallel-target/6720/5

task runAllTestsByGroups << {
      ant.parallel(threadsPerProcessor: 1) {
                    ant.junit (...) {
            // run test group 1
            ...
        }
          ant.junit(...) {
            // run test group 2
            ...
       }
         // run group 3, 4, 5 ...
    }
  }
Run Code Online (Sandbox Code Playgroud)