python - Travis 作业报告成功,即使测试失败(使用 tox)

标签 python testing travis-ci tox

我正在特别关注以下构建:
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/

相关文章:

python - 单个 Excel 单元格中的多行

testing - 在生产系统中测试账户和产品

javascript - Protractor :未定义:Stacktrace

ios - Travis 退出并显示 65 代码并且无法创建捆绑实例

python - tox/conda/travis-ci 引发 ImportError : _PyErr_ReplaceException

python - 从 python 字典中获取值

python - TensorFlow 库被编译为使用 SSE4.1 指令,但这些在您的机器上不可用。中止(核心转储)

Python + Flask 网络应用报告 "[Errno 9] Bad file descriptor"与 pexpect 模块

kotlin - Compose 桌面测试 - 如何检查某些内容是否可见?

Travis CI 不允许使用 SShpass