我的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
答案 0 :(得分:2)
我意识到这是因为我实际上正在使用unittest.TextTestRunner运行我的测试,并且这些测试的退出代码始终为0,除非您专门捕获测试失败并基于它们退出:
ret = not runner.run(test_suite).wasSuccessful()
sys.exit(ret)