pytest学习和使用9-fixture中conftest.py如何使用?

news2025/8/3 2:33:43

9-fixture中conftest.py如何使用?

  • 1 引入
  • 2 conftest.py简介
  • 3 conftest.py特点
  • 4 实例
    • 4.1 conftest.py
    • 4.2 test_conftest1.py
    • 4.3 test_conftest2.py
  • 5 conftest.py优先级

1 引入

  • 之前学习使用fixture前置实现用例的登陆,当时在一个脚本中实现的;那如果其他的脚本也需要用到登陆,这样调用起来可能比较麻烦;
  • 所以我们可以把登陆的fixture放到conftest.py,让pytest去查找。

2 conftest.py简介

  • conftest.py是一个配置文件;
  • 可单独管理一些预置的操作场景;
  • pytest里面默认读取conftest.py里面的配置;
  • 可以理解为一个专门存放fixture的配置文件。

3 conftest.py特点

  • conftest.py配置脚本名称固定不可修改;
  • conftest.py与用例要在同一个pakage下,并且有__init__.py文件;
  • 不需要import导入 conftest.pypytest用例会自动查找

4 实例

  • 以下是两个用例都调用conftest.py:
    在这里插入图片描述

4.1 conftest.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:conftest.py
# 作用:xxx
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import pytest

@pytest.fixture()
def open():
    print("打开浏览器")
    yield
    print("关闭浏览器")

4.2 test_conftest1.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:test_conftest1.py
# 作用:conftest.py的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import pytest

def test_case1(open):
    print("执行用例1......")

def test_case2(open):
    print("执行用例2......")

if __name__ == "__main__":
    pytest.main(["-s", "test_conftest1.py"])
test_conftest1.py::test_case1              打开浏览器
PASSED                                     [ 50%]执行用例1......
                                           关闭浏览器

test_conftest1.py::test_case2              打开浏览器
PASSED                                     [100%]执行用例2......
                                           关闭浏览器


============================== 2 passed in 0.02s ==============================

4.3 test_conftest2.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:test_conftest2.py
# 作用:conftest.py的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import pytest

def test_case3(open):
    print("执行用例3......")

def test_case4(open):
    print("执行用例4......")

if __name__ == "__main__":
    pytest.main(["-s", "test_conftest2.py"])
test_conftest2.py::test_case3              打开浏览器
PASSED                                     [ 50%]执行用例3......
                                           关闭浏览器

test_conftest2.py::test_case4              打开浏览器
PASSED                                     [100%]执行用例4......
                                           关闭浏览器


============================== 2 passed in 0.02s ==============================

5 conftest.py优先级

  • 前边说了conftest.py需要和用例在同一个package下,那如果不同的位置有多个conftest.py,如何判断执行顺序呢?
  • conftest.py作用范围是当前目录包括子目录里的测试模块;

A、测试框架根目录创建conftest.py文件,文件中的Fixture的作用范围是所有测试模块;
B、某个单独的测试文件夹里创建conftest.py文件,文件中Fixture的作用范围,就仅局限于该测试文件夹里的测试模块;该测试文件夹外的测试模块,或者该测试文件夹外的测试文件夹,是无法调用到这个conftest.py文件中的Fixture。
C、测试框架根目录和子包中都有conftest.py文件,并且这两个conftest.py文件中都有一个同名的Fixture,实际生效的是测试框架中子包目录下的conftest.py文件中配置的Fixture。
D、一个用例可以添加多个conftest.py文件中定义的Fixture夹具。

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

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

相关文章

基于PHP+MySQL学生创新作品展示系统的设计与实现

MySQL学生创新作品展示系统的基本功能包括用户注册登录,发布作品,查看作品和对评论评论以及在线留言等信息。 PHP本科学生创新作品展示系统是一个服务类型的网站,系统通过PHp:MySQL进行开发,分为前台和后台两部分,前台部分主要是让大学生查看和发布创新作品使用的。…

N3-PEG-MAL,Azdio-PEG-Maleimide,一种点击化学PEG试剂

击化学PEG试剂叠氮-聚乙二醇-马来酰亚胺,该化学试剂其英文名为Azdio-PEG-Maleimide,(N3-PEG-MAL)。所属分类为:Azide PEG Maleimide PEG。 化学试剂叠氮-PEG-马来酰亚胺的分子量均可定制,有:N3…

音视频开发面试题集锦

下面是 2022.06 月音视频面试题集锦内容的节选: 一、如何根据 NALU 裸流数据来判断其是 H.264 编码还是 H.265 编码? 1)通常我们不是根据 NALU 裸流数据中的信息来选择解码器,而是根据媒体封装层的信息来确定解码器。 媒体封装层…

理解TCP协议三次握手、四次挥手、流量控制、拥塞控制 、重传机制

👨‍💻个人主页: 才疏学浅的木子 🙇‍♂️ 本人也在学习阶段如若发现问题,请告知非常感谢 🙇‍♂️ 📒 本文来自专栏: 计算机网络 🌈 每日一语:真正的勇气是&…

Mac 常用软件汇总

开发工具 1、Android Studio Android开发工程师对这个玩意是又爱又狠,爱它的灵活自由,恨他的放纵不羁。 2、Sourcetree git 图形化操作工具。 3、IntelliJ IDEA 开发Java项目神器。 4、Serial 串口调试工具。可以打印一些日志信息。 5、Navicat …

Python与pycharm-----windows安装与运行

目录 1.python下载 2.Python安装 3、安装并配置pycharm 1.python下载 上python官网下载。很多计算机自带python,如果不自带的话,需要官网下载。 选好版本,最好为3.7版本的。 2.Python安装 需要记下安装路径,免得后续找不到&am…

【算法系列】非线性最小二乘求解-梯度下降法

系列文章目录 【算法系列】卡尔曼滤波算法 【算法系列】非线性最小二乘求解-直接求解法 【算法系列】非线性最小二乘求解-梯度下降法 【算法系列】非线性最小二乘-高斯牛顿法 文章目录 系列文章 文章目录 前言 一、梯度下降法(GD) 二、最速下…

深度优先与宽度优先搜索(python)

算法原理 1、宽度优先搜索: 宽度优先搜索算法(Breadth First Search,BSF),思想是: 从图中某顶点v出发,首先访问顶点v在访问了v之后依次从左往右访问v的各个未曾访问过的邻接点;然后分别从这些邻接点出发依…

loT行业生死竞速:Aqara绿米得用户得天下

作者 | 曾响铃 文 | 响铃说 日前,社科院发布了一份“2022年秋季中国宏观经济形势分析”报告,报告中指出当前,世界经济增长预期下挫,全球通胀居高不下,而中国经济整体仍呈持续恢复状态,但经济内增长动能仍…

【数据结构】树和二叉树以及经典例题

目录1.树的基本概念1.1 树的特点1.2 树的一些相关概念1.3 树的表示1.3.1 那种结构表示树最优?(不是二叉树,就是普通的树)1.4 树在实际中的运用(表示文件系统的目录树结构)2. 二叉树(重点&#x…

嵌入式linux实现pppoe拨号上网

make menuconfig -> Device Drivers -> Network device support -> PPP (point-to-point protocol) 中,选中所有ppp选项。退出,保存配置,修改Makefile重新执行make zImage. 将arch/mips/boot/下的zImage下载到开发板上重启系统。 t…

oracle数据库的导入与导出

1、oracle数据库导入与导出需要注意 2、导出数据格式介绍 3、 传统方式exp(导出)和(imp)导入 3.1 命令执行方式 3.2 命令格式 3.3 导出数据 3.3.1示例 3.4 导入数据 3.4.1 导入数据 4 使用PL/SQL Developer 实现数据导入与导出 4.1 导出与导…

文本分类微调技巧实战2.0

讯飞比赛答辩结束,笔者和小伙伴们参加了一些讯飞的比赛,今年讯飞文本分类比赛相比去年更加多元化,涉及领域、任务和数据呈现多样性,听完各位大佬的答辩之后,结合之前经验和以下赛题总结下文本分类比赛的实战思路。 1 …

allegro16.6导出版图到ADS2019仿真的方法

首先配置好allegro软件 1. 选择FILE->Script, 弹出窗口后选择Browse , 选择ADS对应文件夹下\Keysight\ADS2019\ial\scripts的描述文件,并勾选Change Directory 点击确认; 2.回到Scripting界面点击Replay ; 在弹出的窗口红框位…

Au NPs/FA/PAMAM-DOX 金纳米粒子/叶酸/聚酰胺-胺型树枝状高分子修饰阿霉素的研究

下面小编要分享给大家的内容是Au NPs/FA/PAMAM-DOX 金纳米粒子/叶酸/聚酰胺-胺型树枝状高分子修饰阿霉素,和小编一起来看! PAMAM-DOX 聚酰胺-胺型树枝状高分子修饰阿霉素制备方法: 采用逆向蒸发结合pH梯度法制备LLDs-PAMAM-DOX,观察形态,测定…

基于SpringBoot的体育场运营系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:采用HTML和Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Mav…

【QT知识】在widget中的绘制事件函数

在widget中的绘制事件函数 文章目录1. 代码实现头文件部分cpp文件部分2. 事件函数参考博客&#x1f60a;点此到文末惊喜↩︎ 1. 代码实现 头文件部分 #include <QWidget> #include <QPainter>namespace Ui { class widget_2_1; }class widget_2_1 : public QWid…

相控阵天线(四):阵列天线波束赋形(遗传算法、粒子群算法、进化差分算法)

目录波束赋形简介遗传算法波束赋形粒子群算法波束赋形差分进化算法波束赋形智能算法比较遗传算法波束赋形代码示例波束赋形简介 根据期望的方向图辐射特性(如方向图形状、主瓣宽度、副瓣电平、方向性系数)并以某种方法求得阵面电流分布并将此电流分布施加于相应通道中&#xf…

CCF CTO Club 16期活动记事——走进腾讯,实现连接

11月17日&#xff0c;有幸通过CCF CTO Club活动报名&#xff0c;参观了腾讯北京的总部&#xff0c;在腾讯总部大楼7层宴会厅尝到了美食&#xff0c;还参加了“云原生技术的探索与实践”专场讲座和讨论&#xff0c;味蕾和思维获得了双丰收。 参观腾讯总部 这次参观腾讯北京总部…

用 VS Code 搞 Qt6:信号、槽,以及QObject

用 VS Code 搞 Qt6&#xff1a;信号、槽&#xff0c;以及QObject Qt 里面的信号&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;虽然看着像事件&#xff0c;但它实际上是用来在两个对象之间进行通信的。既然是通信&#xff0c;就会有发送者和接收者。 1、信…