首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pytest的内置插件盘点25. setupplan | 输出fixtire和测试用例的关系

本文系《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内部详细介绍的空白

如果有机会的话,真希望能够把本系列内容整理出书

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OSDmmDajnMW-H1Tuoo5RV1JA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券