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

在GitHub Actions中运行Robot Framework无法获取测试返回码

问题原因

GitHub Actions中每个run步骤都是独立的Bash会话,会话之间的状态(包括命令返回码$?)不会共享。你当前的Set Robot Return Code步骤里的$?,获取的是该步骤内最后一条命令执行前的返回码(由于该步骤里之前没有失败的命令,所以返回码始终为0),而非上一个Run Tests步骤中robot test.robot命令的返回码。

解决方案

有两种可行的调整方式:

方式一:合并测试执行与返回码捕获到同一步骤

将运行测试和设置环境变量放在同一个run步骤中,这样$?就能正确获取到robot命令的返回码:

name: Test
on: [workflow_dispatch]

jobs:
  TEST-Run:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: install
      run: |
        pip3 install -r requirements.txt

    - name: Run Tests and Capture Return Code
      run: |
        robot test.robot
        echo "ROBOT_RC=$?" >> "$GITHUB_ENV"

    - name: If Auto Test Pass Rate Not 100%, Job Will Fail
      if: env.ROBOT_RC != '0'
      run: |
        echo "Auto Test Pass Rate Not 100%, Please Check Test Result"
        exit 1

方式二:利用步骤结果状态判断

给测试步骤添加id和continue-on-error: true,让测试失败时不直接终止job,然后通过步骤的outcome状态来判断是否触发失败逻辑:

name: Test
on: [workflow_dispatch]

jobs:
  TEST-Run:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: install
      run: |
        pip3 install -r requirements.txt

    - name: Run Tests
      id: robot-tests
      continue-on-error: true
      run: |
        robot test.robot

    - name: If Auto Test Pass Rate Not 100%, Job Will Fail
      if: steps.robot-tests.outcome == 'failure'
      run: |
        echo "Auto Test Pass Rate Not 100%, Please Check Test Result"
        exit 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:25:16