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
相关产品推荐
相关产品推荐

