python - pytest 使用自定义选项

标签 python pytest

我正在学习 pytest 以在我们的实验室中使用,我们使用多台具有不同测试配置的机器。每台机器都有自己的 conftest 文件,其中包含特定于其测试环境的参数,例如测试盒的 ipaddresses 等。 Pytest 从包含其 conftest 文件的每台本地机器( ../pytest/cfg/machine1 )运行。 pytest 可执行文件位于远程目录中。所以命令是:

# ../pytest/cfg/machine1 py.test -vs  /dir/path/to/pytest/executable

这工作正常,直到我添加了自定义选项。现在看来 pytest 无法再在我运行它的目录中找到 conftest 文件。我发现了一个未记录的选项 --confcutdir这似乎解决了这个问题。

这是最好的解决方案吗?为什么会首先出现这种情况? pytest 文档并不清楚为什么会失败或如何纠正它。

最佳答案

我的印象是你很可能需要使用 pytest-xdist
http://pytest.readthedocs.org/en/2.0.3/xdist.html
它允许您在远程机器上运行测试
在你的情况下,它不会分布在机器上,而是在所有机器上运行相同的测试
然后您可以根据实际运行的机器测试直接在钩子(Hook)/fixture 中调整测试配置

这不是直接的答案,而是一个建议,您可以如何改进您的测试,而您最初遇到的问题将不会是这样。

关于python - pytest 使用自定义选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24020249/

相关文章:

python - 除了缩进使用 2 个空格外,如何在 PyCharm IDE 中启用 PEP8 检查?

python - 交换字符串中的两个字符并将生成的字符串存储在 Python 列表中

python - 为什么 tempfile 和 os.chdir() 会抛出 RecursionError?

python - 类内的 Pytest fixture 未执行

python - 如何正确运行 setup.py 文件?

python - MySQL 和 Python : How to map the table data?

python - 在 pytest.mark.parametrize 中使用 fixture

testing - 如何使用 Pytest 仅使用特定参数将测试标记为 xfail

python - 如何强制 MagicMock 复制函数签名?

python - 为什么 pytest.mark.parametrize 不适用于 pytest 中的类?