Pytest项目_day11(fixture、conftest)

Fixture

  • fixture是一种类似于setup、teardown,用于测试前后进行预备、清理工作的代码处理机制
    • 相比于setup、teardown来说,fixture命名更灵活,局限性更少
    • 使用conftest.py配置里面可以实现数据共享,不需要import就能自动找到一些配置

使用范围

请添加图片描述

function范围

  • 我们首先需要在一个自定义方法前写上fixture的注解
    • 如果不写范围,则该fixture默认为function范围
    • 我们需要在要求调用该fixture的方法的形参处,写上自定义方法名
      在这里插入图片描述
  • 我们也可以使用autouse=True来让该文件内的每一个函数都自动调用fixture,同时避免我们手动写自定义方法名
    在这里插入图片描述

class范围

  • 我们首先需要在一个自定义方法前写上fixture的注解,并且将范围设置为class
    • 当我们在该文件内不设置class类时,如果将autoclass设置为True,那么pytest会将每一个方法都视为一个类,每一个方法都会调用该fixture
      在这里插入图片描述
    • 当我们将这些方法都放进一个类时,那么只有类最开始会调用一次fixture
      在这里插入图片描述
    • 如果该文件内有很多个类,我们只想让其中的某一个类调用fixture,那么只需要将autouse设为False,并且在某一个类中的某一个方法的形参上加上该fixture即可
      在这里插入图片描述

module范围

  • 我们首先需要在一个自定义方法前写上fixture的注解,并且将范围设置为module
    • 如果我们将autouse设为false,并且在多个方法和类中加上该fixture,那么整个py文件也只会调用一次fixture,且是在第一次加上该fixture的位置处调用
      在这里插入图片描述
    • 如果我们将autouse设为True,那么只会在整个py文件的最开始调用一次fixture
      在这里插入图片描述

session范围

  • 我们首先需要在对应目录下创建一个新文件方法前写上fixture的注解,并且将范围设置为session
    • 然后我们可以在控制台用pytest来运行该目录,可以看到对于一次运行多个文件,fixture也只调用了一次,且是在最开始调用的
      在这里插入图片描述

conftest.py

  • 我们可以将fixture的定义放在conftest.py方法内部,统一管理

  • conftest.py为固定格式,不可以修改名字

  • 使用conftest.py文件中的方法时,无需导入,直接在方法的参数处引入形参即可

  • conftest.py仅作用于当前所处文件夹和下属文件夹
    在这里插入图片描述

  • 如果在conftest.py中,范围为function的fixture,设置autouse为True,那么当前所处文件夹和下属文件夹的所有测试用例都会自动调用该fixture
    在这里插入图片描述

    • 一个测试用例可以接收多个fixture
      在这里插入图片描述

fixture通过return返回数据

  • 我们可以在fixture中使用return来返回数据,供其他测试用例调用
    在这里插入图片描述
  • 在测试用例中,我们将fixture方法名作为实参传入后,pytest会自动将该fixture的返回值传给该同名形参,因此我们可以在后续代码中直接使用
    在这里插入图片描述

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

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

相关文章

DAY 43 复习日

作业: kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 划分数据集 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader impo…

Flink运行时的实现细节

一、Flink集群中各角色运行架构先说Flink集群中的角色吧,有三个分别是客户端(Client)、JobManager、TaskManager。客户端负责接收作业任务并进行解析,将解析后的二进制数据发送给JobManager;JobManager是作业调度中心,负责对所有作…

思科、华为、华三如何切换三层端口?

三层交换机融合了二层交换技术与三层转发技术,具备强大的网络功能。主流厂商(思科、H3C、华为)的三层交换机均支持二层端口与三层端口的相互切换,但具体命令存在差异。本文将详细介绍三大厂商设备的端口切换方法及相关知识。一、各…

springboot的基础要点

Spring Boot 的核心设计理念是 ​​"约定优于配置"​​(Convention Over Configuration),旨在简化 Spring 应用的初始搭建和开发过程。以下是需要掌握的核心基础要点:​一、核心机制​​自动配置 (Auto-Configuration)​…

lesson36:MySQL从入门到精通:全面掌握数据库操作与核心原理

目录 一、引言:为什么选择MySQL? 二、MySQL安装与登录配置 2.1 环境准备 2.2 登录指令详解 三、数据库核心操作 3.1 数据库生命周期管理 3.2 数据库存储引擎选择 四、数据表设计与操作 4.1 表结构创建(含数据类型详解) …

Spring源码解析 - SpringApplication run流程-prepareContext源码分析

prepareContext源码分析 private void prepareContext(DefaultBootstrapContext bootstrapContext, ConfigurableApplicationContext context,ConfigurableEnvironment environment, SpringApplicationRunListeners listeners,ApplicationArguments applicationArguments, Bann…

HIS系统:医院信息化建设的核心,采用Angular+Java技术栈,集成MySQL、Redis等技术,实现医院全业务流程管理。

HIS系统在医院信息化建设中扮演着核心的角色。它是一个综合性的信息系统,旨在管理和运营医院的各种业务,包括门诊、住院、财务、物资、科研等。技术细节:前端:AngularNginx后台:JavaSpring,SpringBoot&…

深度学习-卷积神经网络-LeNet

卷积神经网络是一种专门用于处理具有网格结构数据(如图像、音频等)的深度学习模型。它通过卷积层自动提取数据中的特征,利用局部连接和参数共享的特性减少了模型的参数数量,降低了过拟合的风险,同时能够有效地捕捉数据…

【Java项目与数据库、Maven的关系详解】

Java项目与数据库、Maven的关系详解 一、Java项目是否都需要连接本地数据库? 不一定,这取决于项目类型和需求: 1. 需要数据库的项目类型项目类型数据库作用典型场景Web应用存储用户数据/业务数据电商系统、CMS服务端程序持久化数据金融交易系…

两个Maven工程,使用idea开发,工程A中依赖了工程B,改了工程B,工程A如何获取最新代码

两个Maven工程,使用idea开发,工程A中依赖了工程B,改了工程B,工程A如何获取最新代码 如果工程B的版本是快照,那么如下。 步骤一 工程B 执行 clean package install deploy 步骤二 工程A 刷新Maven

奥比中光与地平线、地瓜机器人达成战略合作,携手推动机器人智能化

摘要:机器人“慧眼”与“智脑”强强联合!8月11日,奥比中光与地平线及其控股子公司地瓜机器人在北京签订合作协议,双方将在机器人智能化领域展开深度合作,充分发挥各自的技术与产品优势,携手推动机器人产业的…

【Linux】Tomcat

Tomcat简介Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和 并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和 JSP容器Tomcat的使用安装ja…

Putting it all together 将所有内容整合在一起

官方链接 https://www.youtube.com/watch?vAa_FAA3v22g&t1s Task1 Putting It All Together 将所有内容整合在一起 图片版 文字版 Putting It All Together 将所有内容整合在一起 From the previous modules, youll have learned that quite a lot of things go on b…

Python 闭包详解:从变量作用域到实战案例

一、变量作用域基础在 Python 中,变量根据作用范围可分为三类:全局变量:定义在函数外部的变量,作用范围是整个程序。如果在函数内部需要修改全局变量,必须使用global关键字声明。局部变量:定义在函数内部的…

Docker 跨主机容器之间的通信macvlan

默认一个物理网卡,只有一个物理mac地址,虚拟多个mac地址 缺点:每次需要手动配置ip地址,容易ip地址冲突。类似于保存到execl表格里面。 两台物理机: docker-01和docker-02 创建macvlan网络 [rootdocker-01 ~]# docker n…

android 换肤框架详解1-换肤逻辑基本

android 换肤框架详解1-换肤逻辑基本-CSDN博客 android 换肤框架详解2-LayoutInflater源码解析-CSDN博客 android 换肤框架详解3-自动换肤原理梳理-CSDN博客 换肤框架流程 1,通过AssetManager获取换肤的资源文件 2,通过原文件中的resId获取到res名称…

NEON性能优化总结

转自 NEON优化:性能优化经验总结-CSDN博客 NEON优化:性能优化经验总结 1. 什么是 NEON Arm Adv SIMD 历史 2. 寄存器 3. NEON 命名方式 4. 优化技巧 5. 优化 NEON 代码(Armv7-A内容,但区别不大) 5.1 优化 NEON 汇编代码 …

计算机网络摘星题库800题笔记 第2章 物理层

第2章 物理层2.1 物理层概述题组闯关1.采用以下哪种设备,可以使数字信号传输得更远 ( )。 A. 放大器 B. 中继器 C. 网桥 D. 路由器1.【参考答案】B 【解析】选项 A 放大器只是单纯地放大信号、抑制噪音和干扰。选项 B 中继器是把一根线缆中的电或者光信号传递给另一…

导入文件到iPhone实现

我们有时候开发需要加载一些自己的文件&#xff0c;这个时候就需要导入文件到iPhone等设备。在info里面open as source code&#xff0c;加入如下配置&#xff1a;<!-- 开启 iTunes / Finder 文件共享 --><key>UIFileSharingEnabled</key><true/>或者o…

Ubuntu Server系统安装磁盘分区方案

最近打算把家里的旧电脑利用起来&#xff0c;装上Ubuntu Server 24.04.3 LTS作为一个家用NAS服务器&#xff0c;但是给旧电脑安装系统时遇到了一些问题&#xff0c;遂记录下来 GPT分区与MBR分区 GPT 指的是 GUID Partition Table&#xff08;全局唯一标识分区表&#xff09;&am…