py.test中有多个自定义插件

时间:2015-06-02 22:00:24

标签: python pytest

我的问题是关于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',
    ]
    },
 )

1 个答案:

答案 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来说很有意义。