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

unittest框架和pytest框架区别及示例

unittest框架和pytest框架区别及示例

类型unittest框架pytest框架unittest框架示例pytest框架示例
安装python内置的一个单元测试框架,标准库,不需要安装第三方单元测试库,需要安装使用时直接引用 import unittest安装命令:pip3 install pytest,使用时直接引用import pytest
用例编写规范1. 测试类必须继承 unittest.TestCase,2. 测试方法必须test开头命名1. 测试模块以 test_ 开头命名如:test_login.py,或以 _test 结尾,2. 测试类必须以Test开头命名,且测试类中不能有 init 方法,3. 测试方法/测试函数:必须以test开头在这里插入图片描述在这里插入图片描述
执行方式1. unittest和pytest框架都可以在文件里和终端执行,2. unittest和pytest执行方式并不依赖终端和文件内的命令,后期会单独创建一个main执行入口文件来执行(这里了解即可,先当测试使用)在这里插入图片描述1. 文件内执行:pytest.main([‘-s’,‘-v’]),2. 终端执行:pytest -s -v
执行顺序在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
筛选用例可以通过筛选函数名、类名、模块名执行在这里插入图片描述在这里插入图片描述在这里插入图片描述
前置和后置提供了setUp/tearDown,每个用例运行前、结束后运行一次。setUpClass和tearDownClass,所有用例执行前、结束后,只运行一次在这里插入图片描述在这里插入图片描述在这里插入图片描述
收集用例使用unittest.TestSuite()套件收集测试用例,再通过TestLoader()加载器:可以加载类,加载模块名执行创建 py 文件命名以 test_开头或者_test 结尾文件自动收集用例,例如: test_login.py login_test.py在这里插入图片描述在这里插入图片描述
断言在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
参数化在这里插入图片描述直接使用@pytest.mark.parametrize装饰器,例如:@pytest.mark.parametrize(“case”,test_data) #case :变量名 item:测试数据 test_data在这里插入图片描述在这里插入图片描述
测试报告1. 使用unittest自带的测试报告格式 2. 使用HTMLTestRunnerNew库,需要额外安装在这里插入图片描述在这里插入图片描述在这里插入图片描述
重运行机制1. unittest不支持,2. 可以参考unittestreport扩展库支持重运行机制,安装命令: pip install unittestreport通过插件rerunfailures支持重运行机制,安装命令:pip install pytest-rerunfailures,例如(指定标签失败用例–运行2次间隔为5秒后):pytest -m smoke --reruns 2 --reruns-delay 5在这里插入图片描述
运行一般都会单独写一个main执行入口文件,有两种运行 1. 使用unittest自带的runner,2. 结合HTMLTestRunnerNew插件运行通过main入口文件执行命令,也可以通过终端命令执行在这里插入图片描述在这里插入图片描述
插件比unittest插件相对多很多,目前有600+,比如allure插件
http://www.lryc.cn/news/404718.html

相关文章:

  • IDEA性能优化方法解决卡顿
  • Mysql集合转多行
  • MFC:只允许产生一个应用程序实例的具体实现
  • 深入理解TCP/IP协议中的三次握手
  • 【React】事件绑定、React组件、useState、基础样式
  • x264、x265、libaom 编码对比实验
  • c++网络编程实战——开发基于ftp协议的文件传输模块(二) 配置ftp服务与手动执行ftp命令
  • Sphinx 安装相关指令解释
  • npm下载包-更改默认缓存目录
  • PWM再理解(1)
  • CSPVD 智慧工地安全帽安全背心检测开发包
  • 给常用Docker命令起别名,提高效率
  • 基于深度学习的草莓成熟度实时检测系统(UI界面+YOLOv8/v7/v6/v5模型+完整代码与数据集)
  • 【devops】ttyd 一个web版本的shell工具 | web版本shell工具 | web shell
  • Windows环境Apache配置解析PHP,以及配置虚拟主机详解
  • Redis高级篇—分布式缓存
  • c++端的类,作为组件在qml端使用
  • Android 14 适配之 - 全屏 intent 通知
  • 如何在 Vue 和 JavaScript 中截取视频任意帧图片
  • 代码随想录学习 day54 图论 Bellman_ford 队列优化算法(又名SPFA) 学习
  • 递归遍历树结构,前端传入一整颗树,后端处理这个树,包括生成树的id和pid等信息,
  • Nginx详解(超级详细)
  • postman使用旧版本报错version mismatch detected
  • 探索数据的隐藏维度:使用Scikit-Learn进行特征交互性预测
  • 首个WebAgent在线评测框架和流程数据管理平台来了,GPT-4、Qwen登顶闭源和开源榜首!
  • UE TSharedPtr
  • 基于X86+FPGA+AI的远程医疗系统,支持12/13代 Intel Core处理器
  • 微信小程序开发入门指南
  • 一个非常好的美图展示网站整站打包源码,集成了wordpress和开源版ripro主题,可以完美运营。
  • MySQL:mysql的数据类型