Travis脚本退出代码即使应该也不会失败

时间:2017-04-06 03:05:43

标签: 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

1 个答案:

答案 0 :(得分:2)

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

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