Pytest fixture参数传递的4种方式

Pytest fixture参数传递的4种方式

  • 一、fixture中的函数返回
  • 二、与@pytest.mark.parametrize的结合
  • 三、fixture中的方法嵌套传递
  • 四、测试方法中产生数据后,直接调用teardown

最近使用Pytest中的fixture和conftest时,遇到需要在conftest中的setup和teardown方法里传递参数。这里记录以下4种实现的方式。

一、fixture中的函数返回

conftest.py@pytest.fixture(scope="class")def setup_func():test_data = [{"k1": "v1"}, {"k2": "v2"}]return test_datatestcase.pydef test_func(setup_func)print(setup_func)

结果:

执行一条用例,输出:[{"k1": "v1"}, {"k2": "v2"}]

二、与@pytest.mark.parametrize的结合

conftest.py@pytest.fixture(scope="class")def setup_func(request):print(request.param)return request.paramtestcase.pytest_data = [{"k1": "v1"}, {"k2": "v2"}]@pytest.mark.parametrize('setup_func', test_data, indirect=True)def test_func(setup_func)setup_func

结果:

执行两条用例,分别输出:{"k1": "v1"}, {"k2": "v2"}注:
当 indirect=False 时,“setup_func”被当成普通变量; 
当 indirect=True 时,“setup_func”被当成函数执行,且 “test_data”作为函数中的参数传递

三、fixture中的方法嵌套传递

confitest.py@pytest.fixture(scope="class")def setup_func1():test_data1 = [{"k1": "v1"}, {"k2": "v2"}]return test_data1@pytest.fixture(scope="class")def setup_func2(setup_func1):a = setup_func1b = [{"k11": "v11"}, {"k22": "v22"}]return (a, b)testcase.pydef test_aaa(self, setup_func2):print(setup_func2)

结果:

执行一条用例,输出:([{'k1': 'v1'}, {'k2': 'v2'}], [{'k11': 'v11'}, {'k22': 'v22'}])

四、测试方法中产生数据后,直接调用teardown

@python.fixture(scope="class")def teardown_func():def _teardown_func(param1, param2):func()return _teardown_func

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js逆向补环境-b站志远二期最后8节课笔记

目录 一、基础知识1、什么是纯净V82、什么是BOM和DOM3、node环境/浏览器环境/V8引擎区别4、如何本地调试js补环境5、补环境相对于逆向算法的好处6、vm和vm2介绍 二、8个视频内容笔记概括1、补环境基本知识/头条案例手动插桩补2、Proxy代理/toString函数保护介绍3、补环境框架设…

PMP 3A备考指南

1、学习内容:如果上班能学习,上班学 慢慢悠悠3月 书过一遍 记大概框架,预测型记五大过程组 十大知识领域要知道为什么是这个过程 记为什么 死记打咩 看光环网课 有讲 老师很清楚明了 用上下班时间看 跟着老师思路走就行。敏捷直接看一遍视频&…

【Python百日进阶-Web开发-Peewee】Day261 - Peewee 表关系

文章目录 十、 关系和连接10.1 模型定义10.1.1 创建测试数据 10.2 执行简单连接10.3 连接多个表10.4 从多个来源中选择10.4.1 更复杂的例子 10.5 子查询10.5.1 公用表表达式 10.6 同一模型的多个外键10.7 加入任意字段 十、 关系和连接 在本文档中,我们将介绍 Peew…

利用Adobe Acrobat DC实现图片和PDF互相转换

一、图片转PDF 可以实现多张或者单张图片转PDF! 这个需要使用到Adobe Acrobat DC的文件合并功能,因为Adobe Acrobat DC的文件合并,不仅可以合并多个pdf文件,也支持合并图片文件。 如图,直接选中多张图片合成即可: 添…

微信小程序上线与发布图文步骤操作

1.上传代码 打开微信小程序,在微信开发者工具的工具栏中单击“上传”按钮,页面中弹出提示框,根据提示填写相应的信息,然后单击“上传”按钮,即可上传代码。 2.查看上传代码之后的版本 登录微信小程序管理后台&…

数仓报表数据导出——Hive数据导出至Clickhouse

1. Clickhouse建表 创建database create database ad_report; use ad_report;创建table drop table if exists dwd_ad_event_inc; create table if not exists dwd_ad_event_inc (event_time Int64 comment 事件时间,event_type String comment 事件…

python爬虫_django+vue+echarts可视化查询所有CSDN用户质量分

文章目录 ⭐前言⭐ 效果⭐django简介⭐vue3简介⭐vue引入echarts ⭐前后分离实现💖 django代码层💖 vue3代码层结束 ⭐前言 大家好,我是yma16,本文分享关于前后分离djangovueecharts可视化查询CSDN用户质量分。 该系列文章&#…

Spring IoC及DI依赖注入

Spring 1.Spring的含义: Spring 可从狭义与广义两个角度看待 狭义的 Spring 是指 Spring 框架(Spring Fremework) 广义的 Spring 是指 Spring 生态体系 2.狭义的 Spring 框架 Spring 框架是企业开发复杂性的一站式解决方案 Spring 框架的核心是 IoC 容器和 AO…

LayUi之选项卡的详解(附源码讲解)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于LayUi的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.选项卡是什么 二.选项卡在什么时候使用…

java版鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统源代码

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管…

【云原生】· 一文了解docker中的网络

目录 🍒查看docker网络 🍒bridge网络 🍒none网络 🍒host网络 🍒自定义容器网络 🦐博客主页:大虾好吃吗的博客 🦐专栏地址:云原生专栏 根据前面的学习,已经对d…

Qt/C++原创项目作品精选(祖传原创/性能凶残)

00 前言说明 从事Qt开发十年有余,一开始是做C#.NET开发的,因为项目需要,转行做嵌入式linux开发,在嵌入式linux上做可视化界面开发一般首选Qt,当然现在可选的方案很多比如安卓,但是十多年前那时候板子性能低…

Heroku 部署有关 opencv 的 Django 后端应用(pdf2docx)

文章目录 场景解决方案AptfileBuildpacksDashboard 上手动构建Heroku CLI 终端构建 Requirements.txt提交改变 场景 我使用 heroku 部署了一个 Django 后端项目,里面使用了 pdf2docx 库进行 pdf 转 docx 这个库底层调用了 opencv 的一些操作,因此在部署…

服务器反向代理

反向代理作用 隐藏服务器信息 -> 保证内网的安全,通常将反向代理作为公网访问地址,web服务器是内网,即通过nginx配置外网访问web服务器内网 举例 百度的网址是:http://www.baidu.com , 现在我通过自己的服务器地…

手机自动化脚本-- 模拟器模拟真机环境过检测

文章目录 安装包目录结构一、安装雷电模拟器9二、新建模拟器并且初始化1. 性能设置2. 其他设置3. 当前配置三、面具1. 安装2. 面具初始化四、修改机型1. 将机型模块安装到模拟器2. 安装机型模块五、修改su问题1. 安装RE管理器2. 删除自带su文件,避免文件冲突六、下载地址额外安…

Linux中使用nmap基本使用以及扫描一组计算机的脚本

nmap扫描一组计算机的脚本 说明 Nmap(Network Mapper)是一个开源的网络探测和安全评估工具。它用于扫描和发现网络上的主机、端口和服务,以及评估网络的安全性。 Nmap具有以下主要功能: 主机发现:Nmap可以通过发送…

unity 调用C++ dll 有类和指针操作

这个在之前unity 调用C dll 操作升级套娃函数调用_天人合一peng的博客-CSDN博客的基础上,但实事时类相互嵌套,非常不好处理。 1 测试直接将main()生成dll程序能运行不。 发现是可以的。 2 那就是想方法把对象或指针的操作的下一级函数直接写到main里面&…

Linux 学习总结(93)—— 实用 shell 脚本汇总

1、检测两台服务器指定目录下的文件一致性 #!/bin/bash ###################################### 检测两台服务器指定目录下的文件一致性 ##################################### #通过对比两台服务器上文件的md5值,达到检测一致性的目的 dir/data/web …

STM32基础知识点总结

一、基础知识点 1、课程体系介绍 单片机概述arm体系结构STM32开发环境搭建 STM32-GPIO编程-点亮世界的那盏灯 STM32-USART串口应用SPI液晶屏 STM32-中断系统 STM32-时钟系统 STM32-ADC DMA 温湿度传感器-DHT11 2.如何学习单片机课程 多听理论、多理解、有问题及时提问 自己多…

ChatGPT助力校招----面试问题分享(十一)

1 ChatGPT每日一题:PCB布线,高速信号线走直角的后果 问题:PCB布线,高速信号线走直角的后果 ChatGPT:对于高速信号线来说,最好避免使用直角布线。直角布线会引入反射和信号损耗,从而导致信号完…