我在我的应用程序中有两种类型的测试,如下所示:
- 单元测试(大量测试和快速执行)
- 集成测试(少量测试,但每个套件需要相当长的时间)
我的项目使用gradle,我希望两组测试同时执行。根据gradle的文档,我可以使用maxParallelForks
config来并行执行。但是,由于gradle以统计方式将任务分配给工作线程(请参见here),因此我的所有集成测试都有可能被分配给同一个工作线程。
因此,我真正想要的是在我的gradle文件中有两组test
块,例如:
test {
include 'org/unit/**'
exclude 'org/integration/**'
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
}
test {
include 'org/integration/**'
exclude 'org/unit/**'
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
}
Gradle是否支持上述两种不同的测试配置文件?如果支持,我可以并行执行这两种测试配置文件吗?
2条答案
按热度按时间qpgpyjmq1#
我假设您将它们都放在同一个源集合下:
src/main/java/test
.我建议专门为集成测试创建一个单独的源代码集和任务。
由于您希望并行执行,因此需要创建一个自定义任务,将单元测试任务和集成测试任务提交给Worker API:https://guides.gradle.org/using-the-worker-api/
vcudknz32#
从Gradle 7.4开始,内置的JVM Test Suite Plugin是最佳选择: