我正在学习pytest以便在我们的实验室中使用,我们使用具有不同测试配置的多台机器。每台机器都有自己的conftest文件,其中包含特定于其测试环境的参数,例如测试盒的ipaddresses等.Pytest从包含其conftest文件的每台本地机器(../pytest/cfg/machine1
)运行。 pytest可执行文件位于远程目录中。所以命令是:
# ../pytest/cfg/machine1 py.test -vs /dir/path/to/pytest/executable
在添加自定义选项之前,此工作正常。现在看来,pytest无法再在我运行它的目录中找到conftest文件。我找到了一个没有记录的选项--confcutdir
,似乎可以纠正这个问题。
这是最好的解决方案吗?为什么这首先出现? pytest文档不清楚为什么会失败或如何纠正它。
答案 0 :(得分:0)
我的印象是你很可能需要使用pytest-xdist http://pytest.readthedocs.org/en/2.0.3/xdist.html 它允许您在远程计算机上运行测试 在你的情况下,它不会遍布机器,而是对所有机器运行相同的测试 然后,您可以直接在挂钩/灯具中调整测试配置,具体取决于正在运行的实际机器测试
这不是直接的答案,而是一个如何改进测试以及最初的问题的提议将不会是这样的。
答案 1 :(得分:0)
考虑并尝试分子测试框架: https://molecule.readthedocs.io/
它正在使用pytest和testinfra库。 实际上,我在不同环境和这些环境中的服务器上运行相同的测试集非常成功。 Conftest文件可以保持不变,您只需要配置与您的环境有关的molecular.yml文件即可。