在上一篇的 hooks 函数分享中,开发了一个本地插件示例,其实已经算是在编写插件了。今天继续跟着官方文档学习更多知识点。
一个插件包含一个或多个钩子函数,pytest 正是通过调用各种钩子组成的插件,实现了配置、搜集、运行和报告的所有方面的功能。
通常 pytes t中的插件有如下 3 类:
内置插件
: 从 pytest 内部的_pytest
目录加载外部插件
: 通过setuptools
入口发现的模块conftest.py
: 在测试目录中自动发现的模块
第一个内置插件的路径在/Lib/site-packages/_pytest
这里,有兴趣的可以看下。
第三个conftest.py
我们也很熟悉了,像之前写fixture
函数以及本地hooks函数插件,都是在conftest.py
中。
第二个外部插件中提到的setuptools
是什么呢?
其实这是 pytest 的一个特性库,通过这个setuptools
,我们的插件代码可以通过pip安装并上传到PyPI。
本章就来开发一个可以 pip 安装的第三方插件
一、cookiecutter-pytest-plugin
但是在开发之前,先来了解下cookiecutter-pytest-plugin
这个项目。这是官方文档中强烈推荐的,可以帮助我们快速生成一个规范标准的插件项目。
项目地址:https://github.com/pytest-dev/cookiecutter-pytest-plugin
跟着项目介绍的文档一步步来就行。
先安装该项目:
$ pip install cookiecutter
然后可以使用这个工具开始创建我们自己的插件项目了。
$ cookiecutter https://github.com/pytest-dev/cookiecutter-pytest-plugin
一步步跟着出现的指令提示,输入对应的项目信息即可。
最后的输入的一个测试插件项目是这样的。