为什么 pytest 要求指定 --tx
Why is pytest asking to specify --tx
多次测试成功后,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
?
如果你像 -n -32
这样在 -n 数字后面用粗手指划破折号,pytest 会抱怨缺少 --tx
选项。换句话说,-n 之后的数字不能为负数,您要使用的是 -n 32
.
--tx
通常用于调用 Python2.7 子进程:
pytest -d --tx popen//python=python2.7
有关使用 --tx
作为 pytest 的一部分的更多信息可以在 pytest-xdist [关于此标志的文档](pytest -d --tx popen//python=python2.7).
我遇到了同样的 pytest-xdist
错误,但原因不同。我设置了 --forked --dist=loadfile
但没有指定 --numprocesses
。设置该选项修复了错误。
多次测试成功后,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
?
如果你像 -n -32
这样在 -n 数字后面用粗手指划破折号,pytest 会抱怨缺少 --tx
选项。换句话说,-n 之后的数字不能为负数,您要使用的是 -n 32
.
--tx
通常用于调用 Python2.7 子进程:
pytest -d --tx popen//python=python2.7
有关使用 --tx
作为 pytest 的一部分的更多信息可以在 pytest-xdist [关于此标志的文档](pytest -d --tx popen//python=python2.7).
我遇到了同样的 pytest-xdist
错误,但原因不同。我设置了 --forked --dist=loadfile
但没有指定 --numprocesses
。设置该选项修复了错误。