文章预览
plug-in 在维基百科中是这么定义的:“在计算中,插件是软件组件,为现有计算机程序增加一个特定的特征。” 所以插件应该是一个能够灵活配置,并很方便的载入配置中的内容。 由于 Python 本身的动态特性,插件化的实现就更灵活。现有的动态插件都是基于 Python 的命名空间和动态导入功能来查找并导入外部依赖。具体原理可以查看 Creating and discovering plugins:https://docs.pytest.org/en/latest/index.html 。 插件框架 pluggy pluggy 是从 pytest 中演化出来的一个插件工具。它为 pytest 提供外围插件支持,当开发人员需要扩展 pytest 的功能时,基于 pytest 的规范做出对应的插件然后将其安装到环境中后, pytest 就可以自动识别已有插件。 其具体原理是通过创建一个 hookspec = pluggy.HookspecMarker("eggsample") 来标记插件事先的规范,然后使用 hookimpl = pluggy.HookimplMarker("eggsample"
………………………………