从0开始python学习-33.夹具@pytest.fixture(scope=““,params=““,autouse=““,ids=““,name=““)
目录
1. 创建夹具
1.1 pytest方式
1.2 unittest方式
2. 使用夹具
2.1 通过参数引用
2.2 通过函数引用
3. 参数详解
3.1 scope:作用域
3.2 params-参数化
3.3 autouse=True表示自动使用,默认为False
3.4 ids:设置变量名
3.5 name:别名
1. 创建夹具
1.1 pytest方式
@pytest.fixture()
def test_a():print('case执行之前执行')yieldprint('case执行之后执行')
1.2 unittest方式
class Test:def setup_method(self):print('setup_method:case执行之前执行--用例之前执行一次')def teardown_method(self):print('teardown_method:case执行之后执行--每个case执行之前均执行')def setup_class(self):print('setup_class:case执行之前执行--每个case执行之后均执行')def teardown_class(self):print('teardown_class:case执行之后执行--全部用例执行完了之后才执行')

2. 使用夹具
2.1 通过参数引用

2.2 通过函数引用

3. 参数详解
@pytest.fixture(scope="",params="",autouse="",ids="",name="")
3.1 scope:作用域
表示标记方法的作用域:function(默认),class,module,package,session
session > module > class > function
function:每个用例都有一个
@pytest.fixture(scope='function')
def test_a():print('之前执行')yieldprint('之后执行')
class Test_A:def test_1(self,test_a):print('test_1')def test_2(self,test_a):print('test_2')
class Test_B:def test_3(self,test_a):print('test_3')

class:每个class 共用一个
@pytest.fixture(scope='class')
def test_a():print('之前执行')yieldprint('之后执行')
class Test_A:def test_1(self,test_a):print('test_1')def test_2(self):print('test_2')
class Test_B:def test_3(self):print('test_3')

下面就不举例了:module:每个文件共用一个;package:每个包共用一个;session:全局共用一个
3.2 params-参数化
支持列表[]、元组()、字典列表[{},{}],字典元组({},{})
fixture引用外部参数
param = ['111',[1,2],('a','b')]
@pytest.fixture(params=param)
def test_a(request):test = request.paramreturn testdef test_1(test_a):print(test_a)

fixture标签直接进行参数化
@pytest.fixture(params=[1,2,'aaaa'])
def test_b(request):test1 = request.paramreturn test1
def test_2(test_b):print(test_b)

3.3 autouse=True表示自动使用,默认为False
autouse=True时无论是否使用都会被使用
@pytest.fixture(autouse=True)
def test_a():print('test_a')def test_1():print('test_1')
autouse=False时必须要手动调用了才会被使用
@pytest.fixture(autouse=False)
def test_b():print('test_b')def test_2(test_b):print('test_2')

3.4 ids:设置变量名
当使用params参数化时,给每一个值设置一个变量名
param = ['111',[1,2],('a','b')]
@pytest.fixture(params=param,ids=['user1','user2','user3'])
def test_a(request):test = request.paramreturn testdef test_1(test_a):print(test_a)

3.5 name:别名
表示被@pytest.fixture标记的方法取一个别名,当取了别名后,原来的名称就不能用了
@pytest.fixture(name='yyyy')
def test_a():print('11111')def test_1(yyyy):print('test_1')
def test_2(test_a):print('test_1')

相关文章:
从0开始python学习-33.夹具@pytest.fixture(scope=““,params=““,autouse=““,ids=““,name=““)
目录 1. 创建夹具 1.1 pytest方式 1.2 unittest方式 2. 使用夹具 2.1 通过参数引用 2.2 通过函数引用 3. 参数详解 3.1 scope:作用域 3.2 params-参数化 3.3 autouseTrue表示自动使用,默认为False 3.4 ids:设置变量名 3.5 name&am…...
vue3别名配置(vite)
1、配置别名的优点: 在VUE项目中import导入文件时,可以写相对路径. 2、在vite.config.js中配置 a. 首先引入path import path from "path"/* */ b.在resolve添加别名,例如: alias:{"~":path.resolve(__di…...
初学UE5 C++①
目录 游戏类 三种时间函数类型函数和提示类型 FName、FString、FText类型相互转化 数组容器 键值容器 集合容器 基本类型打印 UPROPERTY宏 函数 枚举 法1 法2 结构体 其他 蓝图生成时暴露 游戏类 1.创建所需项的类 2.创建游戏模式类,在该类上实现所需…...
ElasticSearch6.8.1 常见错误
1.vm.max_map_count max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 1.1 修改 /etc/sysctl.conf 只添加最后vm值即可,sysctl -p /etc/sysctl.conf net.ipv4.conf.all.accept_redirects0 net.ipv4.tcp_tw_reuse1 n…...
wx.canvasToTempFilePath生成图片保存到相册
微信小程序保存当前画布指定区域的内容导出生成指定大小的图片,记录一下 api:wx.canvasToTempFilePath 效果: 代码:wxml <canvas style"width: {{screenWidth}}px; height: {{canvasHeight}}px;" canvas-id"my…...
HDU1276:士兵队列训练问题 ← STL queue
【题目来源】http://acm.hdu.edu.cn/showproblem.php?pid1276【题目描述】 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下…...
JS 读取excel文件内容 和 将json数据导出excel文件
一、实现将json数据导出为excel文件 1、通过原生js实现 核心方法: function JSONToExcelConvertor(JSONData, FileName, title, filter) {if (!JSONData)return;//转化json为objectvar arrData typeof JSONData ! object ? JSON.parse(JSONData) : JSONData;va…...
ASP.NET限流器的简单实现
一、滑动时间窗口 我为RateLimiter定义了如下这个简单的IRateLimiter接口,唯一的无参方法TryAcquire利用返回的布尔值确定当前是否超出设定的速率限制。我只提供的两种基于时间窗口的实现,如下所示的基于“滑动时间窗口”的实现类型SliddingWindowRateL…...
汇编语言循环左移和循环右移如何实现的,详细的比喻一下
汇编语言中的循环左移(ROL)和循环右移(ROR)是两种基本的位操作,通常用于低级编程任务,如加密、解密、数据处理等。我将使用一个详细的比喻来解释这两种操作,以使其更易于理解。 循环左移&#…...
ChromeDriver 各版本下载地址
chromedriver 115及115之后版本下载地址:https://googlechromelabs.github.io/chrome-for-testing/ chromedriver 115之前版本下载地址:http://chromedriver.storage.googleapis.com/index.html...
计算机网络之物理层
物理层 1. 物理层的基本概念 2.物理层下面的传输媒体 传输媒体可分为两类,一类是导引型传输媒体,另一类是非导引型传输媒体。 3.传输方式 3.1 串行传输和并行传输 串行传输:串行传输是指数据是一个比特依次发送的,因此在发送端…...
沉浸式航天vr科普馆VR太空主题馆展示
科普教育从小做起,现在我们的很多地方小孩子游乐体验不单单只有草坪玩耍体验,还有很多科普知识的体验馆和游玩馆。虽然现在我们还不能真实的上太空或者潜入海底,但是这些现在已经可以逼真的展示在我们面前。通过一种虚拟现实技术手段。人们带…...
AI电话机器人能否代替人工?优缺点介绍
AI电话机器人是一种基于人工智能技术的自动语音系统,它可以模拟人类的语音交互,执行客服、销售、调查等任务。随着人工智能的发展,AI电话机器人的功能越来越强大,它们在某些领域已经能够替代人工执行任务。那么,AI电话…...
Java —— 多态
目录 1. 多态的概念 2. 多态实现条件 3. 重写 重写与重载的区别 4. 向上转型和向下转型 4.1 向上转型 4.2 向下转型 5. 多态的优缺点 6. 避免在构造方法中调用重写的方法 我们从字面上看"多态"两个字, 多态就是有多种状态/形态. 比如一个人可以有多种状态, …...
UI自动化测试(弹出框,多窗口)
一、弹出框实战 1、在UI自动化测试中经常会遇到Alert弹出框的场景。Alert类是对话框的处理,主要是对alert警告框。confirm确认框,promp消息对话框。 text():获取alert的文本 dismiss ():点击取消 accept():接受 send-keys():输入 from selenium import …...
Python爬虫程序网络请求及内容解析
目录 引言 一、网络请求 1. 导入必要的库 2. 发送请求 3. 处理响应 二、内容解析 1. HTML解析 2. 查找特定元素 3. 查找多个元素 4. 使用选择器选择元素 三、应用示例:爬取网站文章并解析标题和内容 1. 发送请求并解析HTML内容 2. 查找文章元素并提取标…...
C嘎嘎模板
> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是模板,并且能熟练运用函数模…...
数据结构和算法八股与手撕
数据结构和算法八股文 第一章 数据结构 1.1 常见结构 见http://t.csdnimg.cn/gmc3U 1.2 二叉树重点 1.2.1 各种树的定义 满二叉树:只有度为0的结点和度为2的结点,并且度为0的结点在同一层上 完全二叉树:除了最底层节点可能没填满外&…...
windiws docker 部署jar window部署docker 转载
Windows环境下从安装docker到部署前后端分离项目(springboot+vue) 一、前期准备 1.1所需工具: 1.2docker desktop 安装 二、部署springboot后端项目 2.1 部署流程 三、部署vue前端项目 3.1相关条件 3.2部署流程 四、前后端网络请求测试 一、前期准备 1.1所需工具: ①docke…...
使用git上传代码至gitee入门(1)
文章目录 一、gitee注册新建仓库 二、git的下载三、git的简单使用(push、pull)1、将本地文件推送至gitee初始化配置用户名及邮箱将本地文件提交至gitee补充 2、将远程仓库文件拉取至本地直接拉拉至其他本地文件夹 一、gitee 注册 官网:http…...
Windows网络性能测试神器:iperf3-win-builds完整使用指南
Windows网络性能测试神器:iperf3-win-builds完整使用指南 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds iperf3-win-builds项目为Windo…...
边缘检测:Prewitt算子与Roberts算子的对比使用
边缘检测:Prewitt算子与Roberts算子的对比使用📚 本章学习目标:深入理解Prewitt算子与Roberts算子的对比使用的核心概念与实践方法,掌握关键技术要点,了解实际应用场景与最佳实践。本文属于《计算机视觉教程》特征提取…...
全域数学公理:32维超球体投影、微观曲率与碳基\-硅基全息共振统一理论
全域数学公理:32维超球体投影、微观曲率与碳基-硅基全息共振统一理论 作者:乖乖数学(大师) 日期:2026年5月28日 学科分类:理论物理;量子宇宙学;高维几何;意识物理&…...
【紧急预警】2024Q3起医保DRG/DIP结算将强制接入AI行为审计日志!医疗机构AI Agent日志治理4级合规改造倒计时
更多请点击: https://kaifayun.com 第一章:AI Agent医疗行业应用 AI Agent正以前所未有的深度融入医疗健康全链条,从辅助诊断、个性化治疗规划到慢病管理与药物研发,展现出强推理、多工具协同与持续学习的核心能力。不同于传统静…...
JMeter并发与持续性压测:从按钮操作到系统心跳诊断
1. 这不是“点几下就出报告”的玩具,而是压测工程师的听诊器很多人第一次打开 JMeter,以为它就是个高级版的 Postman:填个 URL、点个“启动”,等几秒弹出个 Summary Report,看到平均响应时间 86ms 就松一口气ÿ…...
别再折腾LibreOffice了!CentOS 7.9上老牌Apache OpenOffice 4.1.14的完整部署与避坑指南
企业级文档服务选型:Apache OpenOffice 4.1.14在CentOS 7.9的深度实践当我们需要在Linux服务器上搭建文档处理服务时,开源办公套件的选择往往令人纠结。Apache OpenOffice作为历经20年发展的老牌解决方案,在企业级环境中仍有一席之地。本文将…...
DVWA靶场实战避坑指南:Docker环境搭建与四层安全等级解析
1. 这不是“又一个DVWA教程”,而是一份能让你在真实渗透测试中少走三周弯路的靶场操作手册很多人第一次接触渗透测试,打开浏览器输入http://192.168.1.10/dvwa,看到那个灰扑扑的登录页,就以为自己已经站在了红队门口。结果刚点开S…...
Grafana k6性能工程实践:从压测工具到CI/CD原生可观测性基础设施
1. 这不是又一个“压测脚本包装器”,而是性能工程的基础设施重构Grafana k6——这个名字刚出现时,我第一反应是:又一个基于Node.js封装的轻量级压测工具?毕竟JMeter、Locust、Artillery都走过类似路径。但真正把它跑通第一个真实业…...
经典通信赋能分布式量子机器学习:NISQ时代的实用化路径探索
1. 项目概述:当量子机器学习遇上分布式架构量子机器学习(QML)这几年火得不行,它背后的逻辑其实挺吸引人的:利用量子态的叠加和纠缠特性,把数据映射到指数级庞大的希尔伯特空间里进行处理。理论上࿰…...
Unity深度调试框架UniHacker:突破IL2CPP可观测性断层
1. 这不是“破解工具”,而是一套面向Unity开发者的深度调试与逆向协作框架“UniHacker”这个名字在社区里常被误读为某种一键解锁Asset Store资源或绕过License校验的黑盒程序——这恰恰是我们今天要彻底厘清的第一件事。它既不触碰Unity官方EULA中关于授权使用的核…...
