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

GitHub Actions中Maven Cucumber测试失败但任务显示成功求助

解决GitHub Actions中Maven+Cucumber测试失败但Job显示成功的问题

可能的原因及解决方案

1. Maven命令参数语法错误

你的Maven命令存在语法问题:-D clean 是无效写法,-D 用于定义系统属性(格式为 -Dkey=value),这里的 clean 应该作为Maven生命周期目标,而非系统属性。这个错误可能导致Maven未正确识别测试失败状态,返回了错误的成功退出码(0)。

修正后的Maven命令:

- name: Run tests with maven
  run: mvn clean verify -Dchromedriver_exe_path=${{ env.chromedriver_exe_path }} -Dbrowser=${{ env.browser }} -Denvironment=${{ env.environment }} -Dset_browser_dimensions=${{ env.use_monitor_size }} -Dheadless=true "-Dcucumber.filter.tags=${{ env.tags }}" --no-transfer-progress
  env:
    DISPLAY: ":2"

将 clean verify 作为Maven目标放在正确位置,移除多余的 -D 前缀。

2. Surefire报告Action未配置失败触发

scacap/action-surefire-report 默认不会因测试失败终止Job,需要显式配置 fail_on_test_failures: true 参数,确保报告检测到失败测试时,该步骤返回失败状态,进而标记整个Job为失败。

配置后的Surefire报告步骤:

- name: Process maven surefire reports
  uses: scacap/action-surefire-report@v1
  with:
    report_paths: '**/target/surefire-reports/*.xml'
    fail_on_test_failures: true

验证逻辑

修正后,当Maven执行 verify 目标时,测试失败会触发Maven返回非零退出码,GitHub Actions会直接标记该步骤失败,Job终止并显示失败状态;若因特殊情况Maven未正确返回失败码,scacap/action-surefire-report 也会因检测到失败测试触发Job失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:53:21