当前位置: 首页 > ds >正文

pytest高级用法之插件开发

背景

pytest,python全功能测试框架(用某句名言,甩unittest几条街),钩子函数、pytest插件、pytest装饰器都能扩展pytest。

提及pytest高级用法,不得不说pytest插件,例如assert断言失败继续断言,就是插件办到的。

只知道用插件、用hook远远不够,如果能知道它的原理,自行的开发插件,才能称为懂框架。

测试开发进阶必备!手把手教你定制pytest插件,效率提升200% 插件开发

经历

* pytest,hook函数是什么原理?插件又是什么原理?

用的时候,百度用上,没有顾上去想,就比如,unittest收集用例的原理你会去细想吗?

就这样沉寂很久很久,突然有一天被问到conftest.py的函数名称的命名,不知道到函数从哪里?更不知道这个函数的意思?

带着问题思考了很久——》所谓hook函数就是,pytest运行过程中暴露给使用者使用的,你愿意用,结合自身的情况那就重写。

就像是机器处理运行的按钮之外,还有暴露的接口,这些接口专门对接HDMI、耳机、USB?

百度一定会找到有哪些但是必须要知道的是,在框架的什么地方。如下

\Lib\site-packages\_pytest\hookspec.py文件

而所谓的插件?也是如上所说的接口来实现了,只不过加了命令行的参数控制。来看下allure_pytest源码

 从这句话就能看出,allure-pytest增加命令行参数的方法其实调用的是pytest暴露开发者的接口pytest_addoption

把这些hook函数调用封装起来打包,上传到pypi,再通过pip install。这变成了插件!

---------------------------------

搞懂了,Hook函数、插件、pytest.fixture。什么本地插件(conftest.py)、外部插件(allure-pytest)、内置插件(hook函数)、自定义插件?其实就是这样

最后提及我的插件,极其简单,就随意命名了:pytest-testpluggy

pip install 吧

测试开发进阶必备!手把手教你定制pytest插件,效率提升200% 插件开发

http://www.xdnf.cn/news/18395.html

相关文章:

  • 1A AMOLED显示屏电源芯片BCT1838
  • 01-Docker-简介、安装与使用
  • Day09 Go语言深入学习(1)
  • 进程与线程
  • langchain的简单应用案例---(1)使用langchain构建本地知识库
  • K近邻算法(knn)
  • 基于 RxJava 构建强大的 Android 文件下载管理器
  • Android SystemServer 中 Service 的创建和启动方式
  • AI与大数据驱动下的食堂采购系统源码:供应链管理平台的未来发展
  • Git#cherry-pick
  • QT示例 基于Subdiv2D的Voronoi图实现鼠标点击屏幕碎裂掉落特效
  • Day22 顺序表与链表的实现及应用(含字典功能与操作对比)
  • 服务器无公网ip如何对外提供服务?本地网络只有内网IP,如何能被外网访问?
  • Vue.prototype 的作用
  • JUC之CompletableFuture【中】
  • Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
  • FPGA 在情绪识别领域的护理应用(一)
  • 论文阅读系列(一)Qwen-Image Technical Report
  • 中和农信如何打通农业科技普惠“最后一百米”
  • 企业架构是什么?解读
  • 通过分布式系统的视角看Kafka
  • python黑盒包装
  • Matplotlib数据可视化实战:Matplotlib图表注释与美化入门
  • 抓取手机游戏相关数据
  • LWIP流程全解
  • java实现url 生成二维码, 包括可叠加 logo、改变颜色、设置背景颜色、背景图等功能,完整代码示例
  • 【运维进阶】Ansible 角色管理
  • 记一次 .NET 某自动化智能制造软件 卡死分析
  • 流程进阶——解读 49页 2023 IBM流程管理与变革赋能【附全文阅读】
  • Redis缓存加速测试数据交互:从前缀键清理到前沿性能革命