我制作了一个基本软件包,以便在Pyramid应用程序中使用SQLAlchemy:pyramid_sqlalchemy。当您使用此包为应用程序编写测试时,您将需要一些夹具来提供有效的数据库环境。这些灯具是完全通用的,不需要为应用定制。此时,这些灯具列在testing chapter of the documentation中,要求人们复制&将它们粘贴到代码中。毋庸置疑,这并不理想。
是否有一种简单的方法让pyramid_sqlalchemy以其他包可以直接使用它们的方式公开这些灯具?我尝试了一种天真的方法,创建了一个包含所有灯具的pyramid_sqlalchemy.fixtures模块,并在应用测试的from pyramid_sqlalchemy.fixtures import *
中执行了conftest.py
,但这并没有导致灯具被拾取。
答案 0 :(得分:2)
请查看有关在http://pytest.org/latest/plugins.html#making-your-plugin-installable-by-others安装外部插件的文档。
基本上你创建一个带有setuptools入口点的python包:
# sample ./setup.py file
from setuptools import setup
setup(
name="myproject",
packages = ['myproject']
# the following makes a plugin available to pytest
entry_points = {
'pytest11': [
'name_of_plugin = myproject.pluginmodule',
]
},
)
myproject.pluginmodule
是包含您的灯具的模块。然后使用pip
安装该软件包将使pytest
在启动时加载它。有关示例,请参阅pytest-mock或任何其他pytest插件。
希望有所帮助,