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

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.lryc.cn/news/617684.html

相关文章:

  • js数组reduce高阶应用
  • B 树与 B + 树解析与实现
  • 可商用的 AI 图片生成工具推荐(2025 最新整理)
  • Kubernetes部署apisix的理论与最佳实践(一)
  • 专题:2025人形机器人与服务机器人技术及市场报告|附130+份报告PDF汇总下载
  • docker安装Engine stopped
  • 内置redis使用方法
  • Python 高阶函数:filter、map、reduce 详解
  • 【软考架构】主流数据持久化技术框架
  • Spring Boot Excel数据导入数据库实现详解
  • 6s081实验1
  • 机器翻译:一文掌握序列到序列(Seq2Seq)模型(包括手写Seq2Seq模型)
  • 机器学习TF-IDF算法详解
  • GPT-oss:OpenAI再次开源新模型,技术报告解读
  • 视频播放器哪个好用?视频播放器PotPlayer,KMP Player
  • FPGA学习笔记——DS18B20(数字温度传感器)
  • Mysql系列--6、内置函数
  • C++的结构体传参
  • 深度学习与遥感入门(五)|GAT 构图消融 + 分块全图预测:更稳更快的高光谱图分类(PyTorch Geometric 实战)
  • rust编译过程的中间表现形式如何查看,ast,hir,mir
  • Rust 实战五 | 配置 Tauri 应用图标及解决 exe 被识别为威胁的问题
  • istio如何采集method、url指标
  • Rust:anyhow 高效错误处理库核心用法详解
  • Elasticsearch 官方 Node.js 从零到生产
  • 用 Node.js 玩转 Elasticsearch从安装到增删改查
  • 基于动态顺序表实现【通讯录系统】:有文件操作部分哦!
  • 用 Docker 安装并启动 Redis:从入门到实战
  • Spring AI赋能图像识别:大数据模型驱动下的智能化变革
  • Webpack Loader 完全指南:从原理到配置的深度解析
  • 关于JavaScript 性能优化的实战指南