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

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.lryc.cn/news/625294.html

相关文章:

  • Docker核心---数据卷(堵门秘籍)
  • RxJava 在 Android 即时通讯中的应用:封装、处理与控制
  • OpenHarmony之打造全场景智联基座的“分布式星链 ”WLAN子系统
  • (第五篇)spring cloud之Ribbon负载均衡
  • C语言实战:从零开始编写一个通用配置文件解析器
  • 常见的 Bash 命令及简单脚本
  • 量子计算和超级计算机将彻底改变技术
  • 记录Webapi Excel 导出
  • 【qml-4】qml与c++交互(类型多例)
  • 【CPP】一个CPP的Library(libXXXcore)和测试程序XXX_main的Demo
  • kkfileview预览Excel文件去掉左上角的跳转HTM预览、打印按钮
  • Spring Boot 全局异常处理
  • JVM参数优化
  • 《算法导论》第 29 章 - 线性规划
  • Matplotlib数据可视化实战:Matplotlib子图布局与管理入门
  • Day10--滑动窗口与双指针--2875. 无限数组的最短子数组,76. 最小覆盖子串,632. 最小区间
  • Hugging Face 核心组件介绍
  • 【牛客刷题】岛屿数量问题:BFS与DFS解法深度解析
  • Git的初步学习
  • 系统架构设计师-操作系统-避免死锁最小资源数原理模拟题
  • git 创用操作
  • [系统架构设计师]云原生架构设计理论与实践(十四)
  • linux系统装google chrome,amd64
  • 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(六)
  • 应用缓存不止是Redis!——亿级流量系统架构设计系列
  • [系统架构设计师]信息系统架构设计理论与实践(十二)
  • 监督分类——最小距离分类、最大似然分类、支持向量机
  • 利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
  • Apache IoTDB:大数据时代时序数据库选型的技术突围与实践指南
  • 《算法导论》第 31 章 - 数论算法