使用Serenity+Gradle测试时如何配置实现按标签筛选执行测试用例
依赖配置
首先确保你的build.gradle中已经引入了匹配版本的Serenity插件和测试依赖:
plugins { id 'java' // 替换为你实际使用的Serenity版本 id 'net.serenity-bdd.serenity-gradle-plugin' version '3.9.8' } dependencies { // 若使用JUnit4作为测试引擎保留该依赖 testImplementation 'net.serenity-bdd:serenity-junit:3.9.8' // 若使用JUnit5作为测试引擎,删除上面的JUnit4依赖,启用下面的依赖 // testImplementation 'net.serenity-bdd:serenity-junit5:3.9.8' testImplementation 'net.serenity-bdd:serenity-core:3.9.8' }
Test任务参数传递配置
Serenity默认读取系统属性中的serenity.tags参数来过滤测试用例,你通过-P传入的是Gradle项目属性,需要手动将其映射为测试进程的系统属性,在build.gradle中添加如下配置:
test { // 使用JUnit5引擎的话必须保留这行,用JUnit4可删除 useJUnitPlatform() // 映射标签参数到Serenity识别的系统属性 if (project.hasProperty('tags')) { systemProperty 'serenity.tags', project.getProperty('tags') } // 可选配置:限制仅运行符合命名规则的测试用例,避免无关用例被执行 include '**/*Test.class' }
执行验证
配置完成后使用原有命令即可实现标签过滤:gradle test -Ptags="UI:Smoketests"
如果需要多标签组合过滤,可以使用如下格式:
- 同时匹配多个标签:
gradle test -Ptags="UI:Smoketests & Priority:P1" - 匹配任意一个标签:
gradle test -Ptags="UI:Smoketests | API:Regression" - 排除指定标签:
gradle test -Ptags="!UI:Disabled"
注意事项
- 标签值需要和
@WithTag注解中的内容完全一致,区分大小写 - Serenity插件版本需要和核心依赖版本保持一致,避免兼容性问题
内容的提问来源于stack exchange,提问作者anew10
相关产品推荐
相关产品推荐

