本文系《pytest源码剖析》系列内容
25. setupplan
插件路径:_pytest.setupplan
实现的 hook
调用的 hook
无
定义的 fixture
无
插件功能
创建命令行参数--setupplan
mock 了 fixture 的执行过程,输出fixture和用例之间的关系
代码片段
如传递了--setupplan参数,等同传递了--setupshow和--setuponly
简评
本插件和上一个插件关联密切、目的相似,看起来可以合并为同一个插件更合适
拆分成两个,可能是为了便于禁用和启用某一个插件
毕竟这两个插件还有本质的区别:
setuponly插件,会执行 fixture
setupplan插件,不会执行 fixture
...
将本插件上一个插件的参数放在一起,差别如下:
--setup-show参数:显示用例和 fixtures 的执行信息
执行用例
执行 fixture
--setup-only参数:只显示 fixtures 的执行信息
不执行用例
执行 fixture
--setupplan参数:只显示 fixtures 的信息
不执行用例
不执行 fixtures
具体执行结果,可添加作者获取源文件test_show_fixture.py,
在本地执行后观察验证
...
为什么本插件仅使用了pytest_fixture_setup就可以
把setup和teardown都 mock 掉呢?
先是把 fixure给mock 成了return风格,也就是只有前置、没有后置的 fixture,
这样,只需要提供给一个返回值即可完成mock
...
试了几个知名的大模型,对 pytest 内部知之甚少,甚至胡言乱语
这也从侧面说明我写《pytest 源码剖析》是有意义的创作,填补了目前互联网上结果中关于pytest内部详细介绍的空白
如果有机会的话,真希望能够把本系列内容整理出书
领取专属 10元无门槛券
私享最新 技术干货