Github 操作 Pytest 失败过程并将其保存到 txt 文件
Github Actions Pytest fail process along with saving it to txt file
我正在尝试设置工作流程,运行s 测试和评论测试覆盖率。为此,我需要将 pytest 调用结果保存到 txt 文件中。但是,通过使用以下命令执行此操作:
Run pytest --cov=./ --junitxml=pytest.xml --capture=tee-sys --cov-report=term-missing:skip-covered tests/test_app.py | tee pytest-coverage.txt
我 运行 遇到了一个问题,如果某些测试失败,整个工作流程无论如何都会完成。如果任何测试失败,我想要的是工作流程失败,否则我将使用 pytest-coverage.txt 打印代码覆盖率。
您可能需要设置 pipefail
:
If set, the return value of a pipeline is the value of the last (rightmost) > command to exit with a non-zero status, or zero if all commands in the
pipeline exit successfully. This option is disabled by default.
所以工作流程步骤应该是:
run: |
set -o pipefail
pytest --cov=./ \
--junitxml=pytest.xml \
--capture=tee-sys \
--cov-report=term-missing:skip-covered \
tests/test_app.py | \
tee pytest-coverage.txt
备注:
- 在云跑步者中这不是必需的,但在 self-hosted 跑步者中似乎是 issue。
- 或者也可以通过修改job defaults中的
shell
来设置。
我正在尝试设置工作流程,运行s 测试和评论测试覆盖率。为此,我需要将 pytest 调用结果保存到 txt 文件中。但是,通过使用以下命令执行此操作:
Run pytest --cov=./ --junitxml=pytest.xml --capture=tee-sys --cov-report=term-missing:skip-covered tests/test_app.py | tee pytest-coverage.txt
我 运行 遇到了一个问题,如果某些测试失败,整个工作流程无论如何都会完成。如果任何测试失败,我想要的是工作流程失败,否则我将使用 pytest-coverage.txt 打印代码覆盖率。
您可能需要设置 pipefail
:
If set, the return value of a pipeline is the value of the last (rightmost) > command to exit with a non-zero status, or zero if all commands in the pipeline exit successfully. This option is disabled by default.
所以工作流程步骤应该是:
run: |
set -o pipefail
pytest --cov=./ \
--junitxml=pytest.xml \
--capture=tee-sys \
--cov-report=term-missing:skip-covered \
tests/test_app.py | \
tee pytest-coverage.txt
备注:
- 在云跑步者中这不是必需的,但在 self-hosted 跑步者中似乎是 issue。
- 或者也可以通过修改job defaults中的
shell
来设置。