[英]How to execute JUnit tests in parallel for a single test class in Gradle
我们有很多使用Spring的集成测试。 我们不想为每个测试创建单独的JVM进程(maxParallelForks选项)或仅在多模块项目(--parallel)中运行并行构建。
我们希望单个测试类在Maven中并行执行测试,如http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html和并行测试选项
使用parallel选项时要记住的重要事项是:并发发生在同一个JVM进程中。
是否可以在Gradle中实现?
@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 ...
}
}
从Spring 5开始,您可以并行运行Junit测试(使用Spring TestContext Framework ),我认为这正是您所寻找的:在同一JVM中同时执行。
有关更多信息,请参阅Baeldung的博客 。
以下是Gradle doc解释Gradle中 Java插件的任务, 这里是API doc解释所述插件的参数。
请仔细查看forkEvery和maxParallelForks参数。
设置这些应该给你足够的控制来实现并行测试执行。
以下是指向maxParallelForks
应设置的值的SO答案 ,以便最大化加速。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.