Python 是否可以使用另一个项目中的conftest.py fixture?

Python 是否可以使用另一个项目中的conftest.py fixture?,python,pytest,Python,Pytest,我正在为我的自动化测试设置Selenium&Appium框架。这个框架将作为一个包安装在其他项目中,因为我不想将所有不同的项目都放在一个存储库中 是否可以在这些单独的项目中使用保存在框架中的conftest.py文件?我一直在网上寻找解决方案,但找不到任何解决方案 有没有人能够让它以这种方式工作?您可以通过-p参数将其作为插件传递,例如,如果文件安装在站点包/myframework/conftest.py下,请运行pytest-p myframework.conftest以包含它。谢谢@hoef

我正在为我的自动化测试设置Selenium&Appium框架。这个框架将作为一个包安装在其他项目中,因为我不想将所有不同的项目都放在一个存储库中

是否可以在这些单独的项目中使用保存在框架中的conftest.py文件?我一直在网上寻找解决方案,但找不到任何解决方案


有没有人能够让它以这种方式工作?

您可以通过
-p
参数将其作为插件传递,例如,如果文件安装在
站点包/myframework/conftest.py
下,请运行
pytest-p myframework.conftest
以包含它。谢谢@hoefling。我现在正在试,但不起作用。我是否也需要向框架中的setup.py添加任何内容?或者它应该在没有它的情况下工作?当然,为了安装它,您必须将其视为常规模块,最好将其放在您已经安装的某个包中,例如
myframework.testing
等,以便自动包含它。然后,
myframework
中的conftest就变成了一行代码
pytest\u插件=['myframework.testing']
。顺便说一句,你可以用同样的方式把它包括在其他项目中,忘了在上面的评论中提到它。好吧,看起来我的方向是对的,但它仍然不起作用。所以,我有两个项目:框架和项目1。在framework中,我有一个测试模块,在framework setup.py中有conftest.py,我包括以下代码:'entry_points={“pytest11”:[“name_of_plugin=testing.conftest”]}现在在project1中,我用命令行arg-p testing.conftest运行测试,我不知道上面的配置是否正常,但是我现在得到了ValueError:插件已经注册了我做错了什么?啊,我看到你发现了入口点;-)这确实是你能想到的最好的解决方案——你现在只需省去
-p
选项即可。启动
pytest
时,它将扫描工作集的入口点并自动加载插件,因此不再需要显式加载。您可以通过
-p
参数将其作为插件传递,例如,如果文件安装在
站点包/myframework/conftest.py
下,运行
pytest-pmyframework.conftest
将其包括在内。谢谢@hoefling。我现在正在试,但不起作用。我是否也需要向框架中的setup.py添加任何内容?或者它应该在没有它的情况下工作?当然,为了安装它,您必须将其视为常规模块,最好将其放在您已经安装的某个包中,例如
myframework.testing
等,以便自动包含它。然后,
myframework
中的conftest就变成了一行代码
pytest\u插件=['myframework.testing']
。顺便说一句,你可以用同样的方式把它包括在其他项目中,忘了在上面的评论中提到它。好吧,看起来我的方向是对的,但它仍然不起作用。所以,我有两个项目:框架和项目1。在framework中,我有一个测试模块,在framework setup.py中有conftest.py,我包括以下代码:'entry_points={“pytest11”:[“name_of_plugin=testing.conftest”]}现在在project1中,我用命令行arg-p testing.conftest运行测试,我不知道上面的配置是否正常,但是我现在得到了ValueError:插件已经注册了我做错了什么?啊,我看到你发现了入口点;-)这确实是你能想到的最好的解决方案——你现在只需省去
-p
选项即可。当启动
pytest
时,它将扫描工作集的入口点并自动加载插件,因此不再需要显式加载它。