我正在特别关注以下构建:
https://travis-ci.org/ababic/wagtailmenus/builds/267670218
所有作业似乎都报告为成功,即使它们都有一个故意失败的测试,并且至少在过去 2 天里,同一项目的不同构建上一直在发生这种情况。
我的配置.travis.yml一段时间内没有发生重大变化,除了从“精确”切换到“可靠”之外 - 将其改回似乎无法解决问题。
我的 tox.ini也有一段时间没有更改。
我已经尝试将 tox 强制转换为早期版本,但似乎没有帮助。
我知道这一定与 tox 或 Travis 有关,但我的知识仅此而已。任何帮助都将不胜感激。
最佳答案
我查看了该项目,这与 tox 或 travis 无关。问题是无论发生什么,tox 中使用的 runtests.py
总是返回 exitcode 0。 Tox(以及扩展版 Travis)需要一个退出代码 != 0 才能知道出了什么问题。
runtests.py中的相关代码:
[...]
def runtests():
[...]
try:
execute_from_command_line(argv)
except:
pass
if __name__ == '__main__':
runtests()
我没有检查 execute_from_command_line 到底做了什么,但我认为如果出现问题它会返回错误代码(或者如果出现真的错误则引发异常)。
因此我会像这样重写上面的代码:
import sys
[...]
def runtests():
[...]
return execute_from_command_line(argv)
if __name__ == '__main__':
sys.exit(runtests())
这样你就可以通过你运行的任何函数来报告你的测试结果并退出脚本作为错误代码或者如果引发异常,回溯被打印并且脚本也返回一个非零代码。
关于python - Travis 作业报告成功,即使测试失败(使用 tox),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45846095/