python - Travis 脚本退出代码永远不会失败,即使应该失败

标签 python bash continuous-integration travis-ci saucelabs

我的 Travis yml 文件的脚本部分如下所示:

script:
- ./run_tests.sh

脚本本身在 Sauce Labs 上运行一些测试。如果脚本由于测试失败而失败,它仍然会以代码 0 退出,并且构建也会继续通过。如果测试失败,为什么脚本不会退出并显示失败代码?

当我从脚本文件末尾输出退出代码时,我得到 0。当我在脚本命令之后立即在 .travis.yml 文件中输出退出代码时,我得到 1:

echo $?
0
The command "./run_tests.sh" exited with 0.
$ echo $?
1

最佳答案

我意识到这是因为我实际上是使用 unittest.TextTestRunner 运行测试,并且这些测试的退出代码始终为 0,除非您专门捕获测试失败并根据它们退出:

ret = not runner.run(test_suite).wasSuccessful()
sys.exit(ret)

关于python - Travis 脚本退出代码永远不会失败,即使应该失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43244957/

相关文章:

python - 使用 numpy 在 Python 中处理 TIFF(导入、导出)

python - html 中的 Selenium 和 iframe

bash - 来自 cron 的电子邮件在脚本输出中缺少换行符,为什么?

continuous-integration - 当另一个构建失败时如何阻止构建?

caching - 启用缓存后如何持续部署 Web 应用程序?

python - 使用弹性 beantalk 运行后台作业

python - 如何在 matplotlib 中注释 x 轴的范围?

Bash 进度条

bash - 如何在stdout中延迟直播?

java - 如何为不在设备或模拟器上的 Android 运行单元测试?