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

GitLab CI测试失败却显示警告并发送成功邮件,寻求解决

问题解决方法

你的.gitlab-ci.yml存在缩进语法错误,这是导致流水线状态异常的核心原因:

  • when: manual 本该是test_qa任务的子配置项,你错误将其写成了与test_qa同级的全局配置,导致后续的artifacts块也无法关联到该任务。GitLab因此无法正确识别任务的失败判定逻辑,也无法处理JUnit测试报告,最终出现测试失败却只显示警告、发送成功邮件的问题。

修正后的配置如下:

stages:   
  - qa 

image:
    name: maven:3-jdk-11
    pull_policy: [always, if-not-present]

variables:
    MAVEN_OPTS: "-Dmaven.repo.local=/.m2"

test_qa:
  stage: qa  
  script:
    - echo "testing against qa..."
    - mvn test
  when: manual        
  artifacts:
    when: always
    reports:
      junit:
        - /target/surefire-reports/TEST-*.xml
    expire_in: 120 days

关键修正说明:

  1. 将when: manual缩进至test_qa块内,作为该任务的手动触发配置;
  2. 调整artifacts块的缩进,使其归属test_qa任务,确保GitLab能正确收集JUnit测试报告,依据测试结果标记流水线状态;
  3. 统一缩进格式(保持2空格一致),避免语法解析错误。

修正后效果:

  • 当mvn test执行返回非零状态码,或JUnit报告存在失败用例时,该任务会标记为失败,流水线整体状态同步变为失败;
  • GitLab会根据流水线最终的失败状态,发送对应的失败通知邮件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:12:16