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

如何配置GitHub Actions:Log4j日志下Maven测试WARN失败后DEBUG重跑

GitHub Actions 测试失败自动Debug重跑配置方案

一、添加手动触发的配置复选框

在Workflow的触发条件中加入workflow_dispatch,提供一个复选框让用户选择是否启用「失败自动以Debug级别重跑」的功能:

on:
  push:
    branches: [ main ]
  workflow_dispatch:
    inputs:
      enable-debug-retry:
        description: '测试失败时自动以DEBUG级别重跑'
        required: true
        default: false
        type: boolean

二、主测试作业(WARN级别)

定义第一个作业,默认以log-level=WARN执行测试,同时记录测试结果状态,供后续作业判断是否需要重跑:

jobs:
  test-warn:
    runs-on: ubuntu-latest
    outputs:
      test-status: ${{ steps.test-step.outcome }}
    steps:
      - name: 检出代码
        uses: actions/checkout@v4

      - name: 安装依赖
        run: npm install # 替换成你项目的依赖安装命令

      - name: WARN级别执行测试
        id: test-step
        continue-on-error: true # 即使失败也让作业继续,以便输出状态
        run: npm test -- --log-level=WARN # 替换成你项目的测试命令,传入WARN级别参数

三、Debug级别重跑作业(仅当主测试失败且复选框启用时触发)

定义第二个作业,依赖主测试作业的结果,只有当主测试失败且用户勾选了复选框时,才以log-level=DEBUG重跑测试(如果你的测试框架支持,还可以只跑失败的用例):

test-debug-retry:
    runs-on: ubuntu-latest
    needs: test-warn
    if: ${{ needs.test-warn.outputs.test-status == 'failure' && github.event.inputs.enable-debug-retry == 'true' }}
    steps:
      - name: 检出代码
        uses: actions/checkout@v4

      - name: 安装依赖
        run: npm install # 替换成你项目的依赖安装命令

      - name: DEBUG级别重跑测试
        run: npm test -- --log-level=DEBUG # 替换成你项目的测试命令,传入DEBUG级别参数
        # 如果你的测试框架支持仅重跑失败用例,比如pytest可以改成:pytest --log-level=DEBUG --last-failed

关键说明

  • continue-on-error: true:确保主测试作业即使失败也能输出状态,避免直接终止导致后续作业无法触发
  • 作业输出test-status:传递主测试的结果状态(success/failure)给后续作业
  • 条件判断if:精准控制Debug重跑的触发时机,只有满足「主测试失败+用户勾选启用」两个条件才执行
  • 测试命令替换:根据你项目的技术栈(比如Python、Java等),替换对应的依赖安装和测试命令,以及日志级别参数的传递方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:43:14