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