Gradle : 测试任务的多个配置
Gradle : Multiple configurations for Test tasks
我的应用程序中有两种类型的测试,如下所示:
- 单元测试(测试数量多,执行速度快)
- 集成测试(少量测试,但每个套件都需要相当长的时间)
我的项目使用 gradle,我希望两组测试同时执行。根据 gradle 的 documentation, I can use maxParallelForks
config to parallelize the execution. However, as gradle distributes tasks to workers statistically (see 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 是否支持上述两种不同的测试配置文件?如果是,我可以并行执行这两个吗?
我假设您将它们都放在同一个源集下:src/main/java/test
。
我建议专门为集成测试创建一个单独的源集和任务。参见 Configuring integration tests。
并且由于您希望并行执行,因此您需要创建一个自定义任务,将您的单元测试任务和集成测试任务提交给 Worker API:https://guides.gradle.org/using-the-worker-api/
我的应用程序中有两种类型的测试,如下所示:
- 单元测试(测试数量多,执行速度快)
- 集成测试(少量测试,但每个套件都需要相当长的时间)
我的项目使用 gradle,我希望两组测试同时执行。根据 gradle 的 documentation, I can use maxParallelForks
config to parallelize the execution. However, as gradle distributes tasks to workers statistically (see 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 是否支持上述两种不同的测试配置文件?如果是,我可以并行执行这两个吗?
我假设您将它们都放在同一个源集下:src/main/java/test
。
我建议专门为集成测试创建一个单独的源集和任务。参见 Configuring integration tests。
并且由于您希望并行执行,因此您需要创建一个自定义任务,将您的单元测试任务和集成测试任务提交给 Worker API:https://guides.gradle.org/using-the-worker-api/