英文:
Robot framework run on Github actions can't get test return codes
问题
以下是代码部分的翻译:
name: 测试
on: [workflow_dispatch]
jobs:
TEST-Run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: 安装
run: |
pip3 install -r requirements.txt
- name: 运行测试
run: |
robot test.robot
- name: 设置 Robot 返回码
run: |
echo "ROBOT_RC=$?" >> "$GITHUB_ENV"
- name: 如果自动测试通过率不是100%,作业将失败
if: env.ROBOT_RC != '0'
run: |
echo "自动测试通过率不是100%,请检查测试结果"
exit 1
请注意,我只翻译了代码部分,没有包含问题的其他内容。
英文:
I am using Github actions to run my test with robot framework, when test complete, and in bash shell I can get return code in special variable via $?
, but even test fail it also get 0
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
run: |
robot test.robot
- name: Set Robot Return Code
run: |
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
Any help or explanation is welcome! Thank you.
答案1
得分: 4
根据jobs.<job_id>.steps[*].run
:
每个
run
关键字代表运行 runner 环境中的新进程和 shell。当您提供多行命令时,每行在同一个 shell 中运行。
因此,您需要将这些步骤合并在一个中:
- name: 运行测试
run: |
robot test.robot
echo "ROBOT_RC=$?" >> "$GITHUB_ENV"
或者,
- name: 运行测试
run: |
robot test.robot; ROBOT_RC=$?
echo "ROBOT_RC=$ROBOT_RC" >> "$GITHUB_ENV"
有关更多详细信息,请参阅jobs.<job_id>.steps[*].shell
。
英文:
According to jobs.<job_id>.steps[*].run
:
> Each run
keyword represents a new process and shell in the runner environment. When you provide multi-line commands, each line runs in the same shell.
So, you need to combine those steps in one:
- name: Run Tests
run: |
robot test.robot
echo "ROBOT_RC=$?" >> "$GITHUB_ENV"
or,
- name: Run Tests
run: |
robot test.robot; ROBOT_RC=$?
echo "ROBOT_RC=$ROBOT_RC" >> "$GITHUB_ENV"
See jobs.<job_id>.steps[*].shell
for more details.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论