【问题标题】:Stop/fail docker build if tests fail如果测试失败,则停止/失败 docker build
【发布时间】:2019-10-21 10:38:46
【问题描述】:

如果单元测试没有全部通过,我的目标是强制 docker 构建失败。我在 DockerFile 中使用以下行:

RUN python3 -m unittest discover test

我的单元测试在测试目录的类中。运行测试,但失败的测试不会导致构建失败。

我知道非零退出代码是如何停止构建,但使用此命令似乎不会发生这种情况。

【问题讨论】:

  • 发布失败的输出。如果将该行替换为“exit 1”,构建会停止吗?
  • Unit test script returns exit code = 0 even if tests fail 的可能重复项(这是@LiorCohen 链接的问题)
  • 如果任何步骤未返回 0,docker build 将失败,因此您的问题归结为“如果出现故障,我如何使 unittest 返回非零”。这就是链接问题的全部内容。
  • 我很惊讶您必须编写另一个脚本来实现这一点,并且没有命令可以做到这一点。

标签: python unit-testing docker


【解决方案1】:

遇到了同样的问题:如果 azure 管道中的 unittest 失败,则 docker build 失败 我将以下代码放在我的 build.yml 文件中。

errors=$(docker logs careplan-tests-1 2>&1 | grep "FAILED" -c) if [ $errors > 0 ]; then echo -e "unittest tests failed" docker rm apiunittest exit 1 fi

输出为“##[error]Bash exited with code '1'”。在 docker build 中并导致 azure 管道失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    相关资源
    最近更新 更多