pytest - 为 tox 设置 pytest arg 但不直接设置 pytest

标签 pytest tox

我会默认使用一些参数(-n 2)运行 pytest,但如果我只是输入 pytest ..,我不希望默认使用该参数。 . 直接运行 pytest。这可能吗?

如果我包括这个:

[pytest]
addopts=-n 2

tox.ini 中,然后 tox 使用该选项(根据需要),但如果我只是运行,也会使 pytest 使用该选项pytest ... 不通过 tox(不需要)。

我尝试添加 pytest.ini,但是 tox.ini 中的默认值根本没有使用(无论是通过 tox 运行) > 或不)。

有什么帮助吗?

最佳答案

py.test 文档描述 several ways to change configuration 。一种是在 tox.ini 中添加标志,就像您已经在做的那样;另一种是使用环境变量:

You can set a PYTEST_ADDOPTS environment variable to add command line options while the environment is in use:

export PYTEST_ADDOPTS="-v"

因此,如果您在 tox.ini[tox] block 中添加参数;例如:

[tox]
setenv=
  PYTEST_ADDOPTS="-n 2"

并且不要在 [pytest] block 中设置标志,您应该仅在使用 tox 运行 py.test 时看到应用的这些参数。

这有点不优雅,但我认为它确实有效。

(FWIW,我尝试在 tox.ini for hypothesis-python 中进行更改,并且达到了预期的效果。)

关于pytest - 为 tox 设置 pytest arg 但不直接设置 pytest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48856608/

相关文章:

python - 如何针对其他环境运行 tox -e myenv?

python - 使用 tox 安装可选的依赖项

python - 在 tox.ini 中指定 hg 依赖项

python - 循环测试函数时如何让Pytest识别迭代次数

python - 如何管理使用带参数的 fixture 的测试的期望

pytest - 在 py.test 中实现 setUpTestData 样式行为的正确方法是什么

python - 除非存在命令行 -m 参数,否则跳过测试

python - tox 下的测试不一定使用已安装的代码

python - 是否可以在基于 conda 的 Python 安装中使用 tox?

python - Visual Studio Code 调试器不会在使用 pytest-asyncio 的断点处停止