从源码的角度重新认识pytest(上)

目录

1. 获取pytest源码

2. 分析外部依赖


1. 获取pytest源码

pytest 的源码托管在 github 上的,

我这里以 7.2.x 版本为目标进行分析,所以需要获取7.2.x 分支的源码

在PyCharm中执行以下三个命令:

  1. 克隆源码仓库 git clone git@github.com:pytest-dev/pytest.git

  2. 切换到7.2.x分支 git checkout 7.2.x

  3. 安装下载好pytest pip install -e .

pytest的本地开发就搭建好了

注:如果你不熟悉git,也可以通过下面的链接直接下载 https://github.com/pytest-dev/pytest/archive/refs/heads/7.2.x.zip

2. 分析外部依赖

pytest 功能能强大,内容丰富,直接阅读 pytest 源码可能有些无从下手,

这一次我选择先从外围进行突破。

考虑到 pytest 不是凭空产生, 在它工作中难免借助一些基础组件,

如果搞清楚 pytest 依赖和使用哪些外部依赖组件,能够快速的加深对 pytest 的理解。

以 python 项目的开发惯例,外部依赖的模块可能定义在以下几个文件中:

pyproject.toml 
setup.py 
setup.cfg

首先对这三个文件分别对其查验,

果然在 setup.cfg 中列出了 pytest 外部依赖

 install_requires =
     attrs>=19.2.0
     iniconfig
     packaging
     pluggy>=0.12,<2.0
     colorama;sys_platform=="win32"
     exceptiongroup>=1.0.0rc8;python_version<"3.11"
     importlib-metadata>=0.12;python_version<"3.8"
     tomli>=1.0.0;python_version<"3.11"

其中:

  • exceptiongroup、importlib-metadata、tomli在 python 3.11以上的版本不需要;

  • colorama在Linux和macOS系统中不需要,

我的本地环境是 Python 3.11,所以真正的核心外部依赖分别是:

  • packaging

  • 官网:Packaging

  • 用途:解析包的版本号和依赖关系

此外,pytest还大量地使用了python标准库,你对python和python的这些库的了解越深,就越容易理解pytest源码中的各种内容


本文系《pytest源码剖析》系列内容,首发于公众号:测试开发研习社

正在连载,欢迎关注

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值