pytest的conftest.py文件讲解
一、conftest.py的特点
1、可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture
2、conftest.py与运行的用例要在同一个pakage下,并且有__init__.py文件
3、不需要import导入 conftest.py,pytest用例会自动识别该文件,放到项目的根目录下就可以全局目录调用了,如果放到某个package下,那就在该package内有效,可有多个conftest.py
4、conftest.py配置脚本名称是固定的,不能改名称
5、conftest.py文件不能被其他文件导入
6、所有同目录测试文件运行前都会执行conftest.py文件
二、conftest.py的使用场景
1、每个接口需共用到的token
2、每个接口需共用到的测试用例数据
3、每个接口需共用到的配置信息
三、conftest.py的生效范围
1、比如下面的示例,我的conftest文件在pytest2的目录下,那么pytest2这个目录下的所有的城市用例都可以使用conftest文件

2、比如下面的示例的,我的conftest文件在test_suit_01目录下,那么test_suit_01目录下的所有的测试用例都可以使用这个conftest文件

四、conftest.py的的scope字段
1、如果生效范围:scope=“session”
# -*- coding:utf-8 -*-
import pytest
from lib import basefunc @pytest.fixture(scope="session",autouse=True)
def setup_function():
print("执行conftest文件")
basefunc.delfile()
yield
print("执行conftest文件")
basefunc.delfile()
那么,在该目录下的所有的测试用例只会执行一次
在所有的用例开始前会执行yield前面的代码
在所有的用例结束后会执行yield后面的代码
2、如果生效范围:scope=“module”
# -*- coding:utf-8 -*-
import pytest
from lib import basefunc @pytest.fixture(scope="module",autouse=True)
def setup_function():
print("执行conftest文件")
basefunc.delfile()
yield
print("执行conftest文件")
basefunc.delfile()
那么,在该目录下的每个py文件会执行一次
在每个py文件中的用例开始前会执行yield前面的代码
在每个py文件中的用例结束后会执行yield后面的代码
3、如果生效范围:scope=“class”
# 生效的范围,类级别,每个类才会执行一次
@pytest.fixture(scope="class",autouse=True)
def setUp():
print("在每个方法前执行")
yield
print("在每个方法后执行")
那么,在该目录下的每个类会执行一次
在每个类的用例开始前会执行yield前面的代码
在每个类的用例结束后会执行yield后面的代码
4、如果生效范围:scope=“function”
@pytest.fixture(scope="function",autouse=True)
def setUp():
print("在每个方法前执行")
yield
print("在每个方法后执行")
那么,在该目录下的每个测试函数会执行一次
在每个测试用例开始前会执行yield前面的代码
在每个测试用例结束后会执行yield后面的代码
五、conftest.py的的autouse字段
autouse== True,则python会根据scope的指定的作用域范围进行自动执行
autouse== False,则需要在具体的测试案例使用这个函数名称装饰即可
使用装饰器 @pytest.mark.usefixtures('func_name')
pytest的conftest.py文件讲解的更多相关文章
- pytest:conftest.py文件
一.fixture scope 为session 级别是可以跨 .py模块调用的,也就是当我们有多个 .py文件的用例时,如果多个用例只需调用一次fixture,可以将scope='session', ...
- pytest 多个PY文件执行共享变量及用fixture和conftest
------------恢复内容开始------------ 1.pytest需要测试多个py文件,这些文件有一定的依赖关系,同时执行的时候,需要只执行一次初始化setup,结束再执行一次teardo ...
- 『德不孤』Pytest框架 — 14、Pytest中的conftest.py文件
目录 1.conftest.py文件介绍 2.conftest.py的注意事项 3.conftest.py的使用 4.不同位置conftest.py文件的优先级 5.conftest.py中Fixtu ...
- Pytest框架中,conftest.py文件的作用?
conftest.py文件,它主要是实现fixture共享的. 第一,conftest.py文件当中,它储存的都是fixture,就是给用例提供做前置准备工作和后置清理工作的一个东西: 第二,conf ...
- pytest框架+conftest.py配置公共数据的准备和清理
1.pytest介绍:1.自动发现测试模块和测试方法 2.断言使用 assert+表达式即可 3.可以设置会话级.模块级.类级.函数级的fixture 数据准备+清理工作 4.丰富的插件库,==all ...
- pytest 之conftest.py是什么
conftest.py是pytest框架的固定写法:可以把hook和fixture写在这个文件里,就会自动去调用:conftest.py相当于可以编写自己的插件: 也可以理解为pytest特有的本地测 ...
- pytest之conftest.py
一.conftest.py的特点 1.可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture 2.conftest.py与运行的用 ...
- Pytest系列(6) - conftest.py的详细讲解
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 什么是conftest.py 可以 ...
- pytest进阶之conftest.py
前言 前面几篇随笔基本上已经了解了pytest 命令使用,收集用例,finxture使用及作用范围,今天简单介绍一下conftest.py文件的作用和实际项目中如是使用此文件! 实例场景 首先们思考这 ...
- Pytest学习(六) - conftest.py结合接口自动化的举例使用
一.conftest.py作用 可以理解成存放fixture的配置文件 二.conftest.py配置fixture注意事项 pytest会默认读取conftest.py里面的所有fixture co ...
随机推荐
- mybatis-plus自动生成代码
1.背景 本教程将介绍如何使用 mybatis-plus 工具自动给我们生成 Controller.Service.Entity.Mapper.Mapper.xml 层代码; 给出一个便于于学习理解的 ...
- Leetcode: 1484. Groups Sold Products By The Date
题目要求如下: 输入的数据为 要求按照日期查询出每日销售数量及相应产品的名称,并按照字符顺序进行排序. 下面是实现的代码: import pandas as pd def categorize_pro ...
- 开关资源新方法:Try- with-resources
JDK7新特性:Try- with-resources try-with-resources 是 JDK 7中引入的一种新的异常处理机制,它主要用于自动管理资源,能够很容易地关闭在 try-catch ...
- 最新AI生成视频工具!效果不输快手可灵,CogVideoX下载介绍
要说AI生成视频最火的项目,当属国产的快手可灵了,甚至比OpenAI的Sora还要火,前者还是个ppt,可灵已经在落地公测了,博主在前段时间申请试用通道的时候,竟然排到几十万人开外的位置,好在最后还是 ...
- 修改ListCtrl控件列标题文本居左显示
修改ListCtrl控件标题文本居左显示 原来的列标题文本是居中显示: 现在要把列表文本居中改为居左显示 其方法如下: 获得标题控件句柄 g_listCtrl.m_hWnd为ListCtrl控件的句柄 ...
- WM_LBUTTONDOWN,WM_LBUTTONUP
WM_LBUTTONDOWN //鼠标左键按下消息WM_LBUTTONUP //鼠标左键弹起消息参数和按下一样 当用户在窗口的客户区域中按住鼠标左键时,会发布WM_LBUTTONDOWN消息.如果未捕 ...
- 十五张图带你快速入门 shardingsphere-proxy
Apache ShardingSphere 是一款分布式的数据库生态系统,它包含两大产品: ShardingSphere-Proxy ShardingSphere-JDBC 很多同学对于 Shardi ...
- 【VMware VCF】VCF 5.2:挂载远程 vSAN 数据存储。
VMware vSAN 解决方案中,为了充分利用 vSAN HCI 集群内的存储资源, vSAN HCI 和 vSAN HCI 集群之间可以相互共享存储资源,这种解决方案早期叫 vSAN HCI Me ...
- Maven 换源
~/.m2/settings.xml <settings> ... <mirrors> ... <mirror> <id>alimaven</id ...
- express项目的创建
前言 前端开发者若要进行后端开发,大多都会选择node.js,在node生态下是有大量框架的,其中最受新手喜爱的便是老牌的express.js,接下来我们就从零创建一个express项目. 安装nod ...