如何在Gradle中为单个测试类并行执行JUnit测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Gradle中为单个测试类并行执行JUnit测试相关的知识,希望对你有一定的参考价值。
我们有很多使用Spring的集成测试。我们不想为每个测试创建单独的JVM进程(maxParallelForks选项)或仅在多模块项目(--parallel)中运行并行构建。
我们希望单个测试类并行执行测试,就像使用http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html和并行选项的Maven一样
使用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 ...
}
}
春天5:街区新生儿
从Spring 5开始,您可以并行运行Junit测试(使用Spring TestContext Framework),我认为这正是您所寻找的:在同一JVM中同时执行。
有关更多信息,请参阅Baeldung's blog。
原始答案:
这里是Gradle doc在Gradle中解释Java插件的任务,here is API doc向所述插件解释参数。
请仔细查看forkEvery和maxParallelForks参数。
设置这些应该给你足够的控制来实现并行测试执行。
这里是the SO answer指向应该设置maxParallelForks
的值,以便最大化加速。
以上是关于如何在Gradle中为单个测试类并行执行JUnit测试的主要内容,如果未能解决你的问题,请参考以下文章
Serenity Junit - 如何通过 mvn 命令使用 serenity 执行指定的单个测试 [重复]
如何在多模块项目中使用 JUnit5 和 SpringBoot2 通过 gradle 而不是 intelliJ 运行测试