运行 pytest 时的 Tox InvocationError(退出代码 1)

Tox InvocationError (exited with code 1) when running pytest

我正在使用 Python 3.7.4、pytest 6.2.5、tox 3.24.4。 pytest 失败会导致 tox 命令(环绕 pytest)以代码 1 退出是预期的行为吗?感谢您的见解。

Jenkins 控制台日志中指示如下命令:

foobar run-test: commands[0] | pytest test_foobar.py

错误如下:

InvocationError for command /path/.tox/foobar/bin/pytest test_foobar.py (exited with code 1)

这是 tox.ini 文件。

[tox]
envlist = foobar,xxx
skipsdist = true

[testenv]
basepython = python3.7
passenv = *

[testenv:foobar]
deps =
    -r requirements.txt
commands =
    pytest {posargs}

[testenv:xxx]
envdir = {toxworkdir}/foobar
deps = 
    {[testenv:foobar]deps}
commands =
    <something> {posargs}

来自 https://tox.wiki/en/latest/index.html

的文档

Only if all environments ran successfully tox will return exit code 0 (success).

即,是的,pytest 失败将导致 tox 命令以代码 1 退出是预期的行为。

作为 phd 正确答案的补充,当其中一个命令失败时 tox returns non-zero...

如果你真的需要一个成功的tox 运行虽然一个命令失败了,你可以在它前面加一个破折号。

例如

[testenv:foobar]
deps =
    -r requirements.txt
commands =
    - pytest {posargs}

https://tox.wiki/en/latest/config.html#conf-commands