当前位置: 首页 > 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.dtcms.com/a/339032.html

相关文章:

  • Quartus Prime 18.1网盘资源下载与安装指南
  • 从线性回归到神经网络到自注意力机制 —— 激活函数与参数的演进
  • Berry Material React TypeScript 管理后台使用教程 v0.1.0
  • 手写C++ string类实现详解
  • React 新拟态登录页面使用教程
  • 星图云开发者平台新功能速递 | 微服务管理器:无缝整合异构服务,释放云原生开发潜能
  • C++入门自学Day14-- Stack和Queue的自实现(适配器)
  • [Android] 显示的内容被导航栏这挡住
  • STM32 定时器(输出模式)
  • 开源游戏引擎Bevy 和 Godot
  • 开源AI工具Midscene.js
  • 第9章 React与TypeScript
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(17):文法+单词第5回3-复习
  • 指针的应用学习日记
  • GraphQL 与 REST 在微服务架构中的对比与设计实践
  • RadioIrqProcess函数详细分析与流程图
  • C#语言的语法(数据类型)
  • 清空 github 仓库的历史提交记录(创建新分支)
  • 神经网络中的那些关键设计:从输入输出到参数更新
  • STranslate:一键聚合翻译+OCR,效率翻倍
  • 云端赋能,智慧运维:分布式光伏电站一体化监控平台研究
  • 卫生许可证识别技术:通过OCR与NLP实现高效合规管理,提升审核准确性与效率
  • Git#revert
  • 如何解析PDF中的复杂表格数据
  • 星链之供应链:SpaceX供应链韧性密码,70%内部制造+模块化设计,传统航天企业如何追赶?
  • 四大常用排序算法
  • 【线性基】P4301 [CQOI2013] 新Nim游戏|省选-
  • Voice Agents:下一代语音交互智能体的架构革命与产业落地
  • 大语言模型中的归一化实现解析
  • elasticsearch8.12.0安装分词