使用JVM Test Suite插件创建带特定JUnit5标签的Gradle测试任务
问题
我正在使用新版JVM Test Suite插件创建回归测试套件(包含专属源码集与依赖),配置代码如下:
testing { suites { regressionTest(JvmTestSuite) { dependencies { implementation project implementation 'org.assertj:assertj-core:3.22.0' } targets { all { testTask.configure { sourceCompatibility = '17' targetCompatibility = '17' useJUnitPlatform { includeTags 'check' } } } } } } }
该配置生成了可运行新源码集测试的regressionTest任务,目前一切正常。
现在我需要创建一个使用不同JUnit includeTags的测试任务,但未找到合适方法。我曾参考相关资料,但这些方法仅适用于复制标准test任务,无法复用正确的依赖与源码集。
请问使用JVM Test Suite插件时,如何创建带特定JUnit5标签的新测试任务?
解决方案
你可以基于已有的regressionTest测试套件,直接复制它的测试任务并修改标签配置,这样就能完全复用原套件的源码集和依赖。具体配置如下:
testing { suites { regressionTest(JvmTestSuite) { dependencies { implementation project implementation 'org.assertj:assertj-core:3.22.0' } targets { all { testTask.configure { sourceCompatibility = '17' targetCompatibility = '17' useJUnitPlatform { includeTags 'check' } } } } } } } // 基于regressionTest套件创建新的测试任务,指定不同标签 tasks.register('regressionTestSpecial', Test) { // 复用原套件的编译产物和类路径 testClassesDirs = tasks.regressionTest.testClassesDirs classpath = tasks.regressionTest.classpath sourceCompatibility = '17' targetCompatibility = '17' useJUnitPlatform { // 替换为你需要的目标标签 includeTags 'special-check' } // 保持任务分组与原测试任务一致,方便管理 group = 'Verification' description = 'Runs regression tests with "special-check" tag' }
补充说明
- 新任务
regressionTestSpecial完全复用了原套件的依赖、源码编译结果,无需重复配置 - 仅修改JUnit平台的
includeTags参数,精准实现指定标签的测试执行 - 如果需要创建多个不同标签的任务,可以封装成方法简化配置:
def createTaggedRegressionTest(String taskName, String tag) { tasks.register(taskName, Test) { testClassesDirs = tasks.regressionTest.testClassesDirs classpath = tasks.regressionTest.classpath sourceCompatibility = '17' targetCompatibility = '17' useJUnitPlatform { includeTags tag } group = 'Verification' description = "Runs regression tests with \"${tag}\" tag" } } // 快速创建多个带不同标签的测试任务 createTaggedRegressionTest('regressionTestSpecial', 'special-check') createTaggedRegressionTest('regressionTestCritical', 'critical-check')
内容的提问来源于stack exchange,提问作者gotson
相关产品推荐
相关产品推荐

