Python 如何在py.test中加载自定义插件
我在编写一个自定义插件来收集rst格式文件中的py.test结果时遇到问题。最后,我想将这个文件包含到Sphinx文档中 我已经在当前工作目录中的Python 如何在py.test中加载自定义插件,python,pytest,Python,Pytest,我在编写一个自定义插件来收集rst格式文件中的py.test结果时遇到问题。最后,我想将这个文件包含到Sphinx文档中 我已经在当前工作目录中的myplugin.py模块中编写了我的插件。然后我打电话 py.test -p myplugin ../mytool/test 以导入结束:没有名为myplugin的模块 我也试着像这样称呼它 py.test -p .myplugin ../mytool/test 像一个相对的进口,但没有成功 如何正确使用插件? 提供有关插件检测的以下信息: 工具
myplugin.py
模块中编写了我的插件。然后我打电话
py.test -p myplugin ../mytool/test
以导入结束:没有名为myplugin的模块
我也试着像这样称呼它
py.test -p .myplugin ../mytool/test
像一个相对的进口,但没有成功
如何正确使用插件?
提供有关插件检测的以下信息:
工具启动时的插件发现顺序pytest在工具启动时以以下方式加载插件模块:
- 通过加载所有内置插件
- 通过加载通过setuptools入口点注册的所有插件
- 通过预扫描命令行中的-p name选项并加载 在实际命令行分析之前指定的插件
- 通过加载命令行推断的所有conftest.py文件 调用:
- 通过递归加载pytest_插件指定的所有插件 conftest.py文件中的变量
如果插件不可导入,那是因为它不在
sys.path
上。尝试使用PYTHONPATH
变量显式添加它:
PYTHONPATH=/path/to/dir/of/myplugin py.test -p myplugin ../mytool/test
如果要从当前目录加载插件,也可以使用
python-m
调用pytest
:
python -m pytest -p myplugin
这样,您就不需要显式地设置PYTHONPATH
。发件人:
调用pytest
与python-m pytest
使用python-m pytest[…]运行pytest
而不是pytest[…]
产生几乎相同的行为,除了前一个调用将
将当前目录添加到'sys.path'。另见
事实上,这确实奏效了。谢谢我认为当前的工作目录在默认情况下总是在python路径中。只有将
PYTHONPATH
设置为空字符串时才会出现这种情况。