You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:39:04