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

GitLab CI/CD未传标签时自动运行SANITY测试模块配置方案

配置修复方案

现有配置存在3个核心问题导致无参数时无法自动执行SANITY测试:

  1. 未给Tag变量配置默认值,不传参时Cucumber过滤标签参数为空,无法匹配冒烟测试用例
  2. rules逻辑存在错误:判断条件写的是$Tag == "reg",和实际传入的regression参数值不匹配;且没有兜底触发规则,不满足条件时任务不会被加入流水线
  3. script里的参数加了不必要的嵌套引号,容易引发Maven参数解析异常
    注意:Job层级的tags字段是GitLab用来匹配对应标签Runner的配置,和Cucumber测试标签没有关联,不要混淆
修正后完整配置
stages:
    - build

cucumber_test:
    stage: build
    tags: [regression , sanity]
    allow_failure: false
    script:
       # 采用GitLab CI变量默认值语法,未传入Tag参数时自动使用sanity作为过滤标签
       - mvn clean test -Dcucumber.filter.tags="@${Tag:-sanity}"

    rules:
    # 匹配传入regression标签的场景,按需求设置允许失败
    - if: '$Tag == "regression"'
      allow_failure: true
    # 兜底规则,其余场景(包括未传参跑SANITY的场景)正常触发任务
    - when: on_success

    artifacts:
        paths:
          - Report
        when: always
核心改动说明
  • 替换原有%Tag%占位符为GitLab CI原生变量语法${Tag:-sanity}:当流水线启动时未传入Tag变量,自动将Cucumber过滤标签设置为@sanity,触发冒烟测试集执行;传入regression等自定义标签时,优先使用传入值
  • 修正规则匹配条件:将原判断里的reg改为实际使用的regression,保证传入回归标签时允许失败的逻辑正常生效
  • 新增规则兜底逻辑:避免无匹配规则时测试任务被流水线跳过,保证所有合法场景下任务都能正常执行
  • 移除script命令里多余的嵌套引号,避免Maven执行时参数解析错误

内容的提问来源于stack exchange,提问作者gaurav kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:30:53