我的问题是关于pytest中的多个自定义插件。 我有两个(或更多)我创建的pytest插件,它们使用setuptools和pytest11入口点安装,每个插件都有自己的setup.py。似乎只有第一个安装的插件是活动的。我已经通过pytest_configure挂钩中的print语句验证了这一点。如果卸载了第一个安装的插件,那么只有第二个插件的第二个配置挂钩似乎被调用。此外,使用addoption钩子观察到相同的行为,第二个安装的插件的选项无法识别 我彻底搞糊涂了,因为我使用过第三方插件,看起来效果很好。应该调用的所有已安装插件的Aren挂钩? 这可能是插件安装方式的问题,即使用setuptools吗? (我使用的命令是python setup.py -v install)。 Pip正确显示已安装的所有插件模块。
编辑: 名称不同,以下是设置文件:
from setuptools import setup
setup(
name="pytest_suite",
version="0.1",
packages=['suite_util'],
# the following makes a plugin available to pytest
entry_points={
'pytest11': [
'name_of_plugin = suite_util.conftest',
]
},
)
和
from setuptools import setup
setup(
name="pytest_auto_framework",
version="0.1",
packages=['automation_framework'],
# the following makes a plugin available to pytest
entry_points={
'pytest11': [
'name_of_plugin = automation_framework.conftest',
]
},
)
答案 0 :(得分:0)
如果你的pytest入口点都具有相同的名称(就像上面的例子中那样),only the first one will be loaded by pytest。
请注意this is not an inherent limitation of pkg_resources
entry points但是由于插件的方式是在pytest中注册的。只能有一个具有相同名称的插件 - 这对imho来说很有意义。