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

pytest中的hook清单(上)

1. 获取 pytets 所有的 hookspect

pytest 的执行过程,就是一系列 hook 的调用过程

hookspec 决定了 hook 的调用方式和效果

hookspec 里包括了:

hook 名称

hook 参数

是否快速返回结果

是否支持提前调用

通过 Python 脚本来分析pytest的源码  中内容,

并将得到的 hook spec保存到

提示:

从 pytest 7.2.x 开始,pytest_cmdline_preparse 被移除,改用 pytest_load_initialconftests

故共有 52 个 hook

2. 获取 pytest 所有 hook 之间的关系

知道了 hook的spec之外,还需要搞清楚它们之间的关系,比如

hook执行顺序的先后关系

hook执行过程的调用关系

这个稍微麻烦一些,好在同样可以编写脚本来进行分析

1. 准备脚本

准备一个多目录、多文件、多用例的执行环境

2. 记录 Hook 执行过程

hook 的记录可以通过多种方式打开

pluggy 提供的分析函数

pytest 的 DEBUG 选项

本文使用第二种方式,执行下面的命令即可

这样 hook 的执行过程jiu就保存到了

对于简单的、独立的 hook ,内容过程结构是这样的

如果在 hook A 的执行过程中调用了 hook B,结构是这样的

根据这些记录,咱们就可以分析出 pytest 的执行流程,进一步掌握 pytest 的核心原理,和内部细节

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券