0

多次成功测试后,pytest 突然抛出这个错误:

$ pytest -vvv -x --internal --oclint -n -32
============================= test session starts ==============================
platform darwin -- Python 3.7.7, pytest-5.4.1, py-1.7.0, pluggy-0.13.1 -- /usr/local/opt/python/bin/python3.7
cachedir: .pytest_cache
rootdir: /Users/pre-commit-hooks/code/pre-commit-hooks, inifile: pytest.ini
plugins: xdist-1.31.0, forked-1.1.3
ERROR: MISSING test execution (tx) nodes: please specify --tx

这是我的 pytest.ini:

[pytest]
markers =
    oclint: marks tests as slow (deselect with '-m "not slow"')
    internal: marks tests as checking internal components. Use this if you are developing hooks

-n #来自 pytest-xdist,它是 pytest 的一个插件。这对我来说很奇怪,因为 travis linux 构建上的 pytest 在最后一次迭代之前工作得很好。

问题

为什么 pytest 要求我添加--tx测试?

4

2 回答 2

0

如果你在 -n 数字后面加一个破折号-n -32,pytest 会抱怨缺少--tx选项。换句话说, -n 之后的数字不能为负数,而您要使用的是-n 32.

--tx通常像这样使用来调用 Python2.7 子进程:

pytest -d --tx popen//python=python2.7

有关作为 pytest 一部分使用的更多信息--tx,请参阅 pytest-xdist [有关此标志的文档](pytest -d --tx popen//python=python2.7)。

于 2020-03-26T02:29:47.047 回答
0

我得到了同样pytest-xdist的错误,但出于不同的原因。我已经设置--forked --dist=loadfile但没有指定--numprocesses. 设置该选项修复了错误。

于 2021-08-21T14:21:53.170 回答