我们有很多使用Spring的集成测试。我们不想为每个测试创建单独的JVM进程(maxParallelForks选项)或仅在多模块项目(--parallel)中运行并行构建。
我们希望单个测试类并行执行测试,例如Maven http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html和并行选项
并行选项要记住的重要事项是: 并发发生在同一个JVM进程中。
是否可以在Gradle中实现?
答案 0 :(得分:3)
@MariuszS答案是最好的
Gradle是没有xml的蚂蚁,也许这可以帮到你 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 ...
}
}
答案 1 :(得分:2)
从Spring 5开始,您可以并行运行Junit测试(使用 Spring TestContext Framework ),我认为这正是您所寻找的:在同一JVM中同时执行。
有关详细信息,请参阅Baeldung's blog。
以下是Gradle doc解释Gradle中Java插件的任务,以及here is API doc解释所述插件的参数。
请仔细查看forkEvery和maxParallelForks参数。
设置这些应该可以为您提供足够的控制来实现并行测试。
以下the SO answer指出应设置的值maxParallelForks
,以便最大限度地提高速度。