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 ...
随机推荐
- git 如何在本地批量删除匹配名称分支
背景 有时间创建了一大堆的dev/*分支,远程合并完就删除了,但本地还留下一大堆,自己又忘记删除了.一个个删除太麻烦.后面发现居然有批量删除的方法 备注:这里是window下powershell的命令 ...
- 字符串系列目录&&说明
字符串准备写成一个系列. 目录 \(\text{KMP笔记}\) \(\text{Manacher笔记}\) [] [] [] 格式与说明 下面的说明和格式将被应用于整个系列. 说明 所有字符串的下标 ...
- .NET静态代码编织——肉夹馍(Rougamo)4.0
肉夹馍(https://github.com/inversionhourglass/Rougamo),一款编译时AOP组件.相比动态代理AOP需要在应用启动时进行初始化,编译时完成代码编织的肉夹馍减少 ...
- MFC连接Access2007数据库
// TODO: 在此添加额外的初始化代码 //初始化ADO环境 if (!AfxOleInit()) { AfxMessageBox(L"OLE初始化失败"); return F ...
- Cookie,Session Filter,Listener详解
HTTP请求的无状态性 HTTP的无状态性是其一个重要的特征,指的是HTTP协议本身并不保留客户端与服务器交互的历史信息,换而言之,即每次的HTTP请求都是独立的,服务器在处理每一个请求时都不会记住前 ...
- harbor重启后无法自启动解决方案
1. 创建 systemd 服务单元文件 编辑服务文件: 使用以下命令创建并编辑 systemd 服务文件: sudo vim /etc/systemd/system/harbor.service 添 ...
- Kubelet证书自动续签(为 kubelet 配置证书轮换)
1.概述 Kubelet 使用证书进行 Kubernetes API 的认证. 默认情况下,这些证书的签发期限为一年,所以不需要太频繁地进行更新. Kubernetes 包含特性 Kubelet 证书 ...
- CSS – W3Schools 学习笔记 (1)
CSS Color Link to W3Schools 这里讲的是 color 的 value, 它可以用在许多属性上, 比如 background-color, color, border-colo ...
- TLB一致性维护
TLB 是页表项的物理 cache,用于加速虚拟地址到物理地址的转换.CPU 在访问一个虚拟地址时,首先会在 TLB 中查找,如果找不到对应的表项,那么就称之为 TLB miss,此时就需要去内存里查 ...
- 2023年11月中国数据库排行榜:OPO组合持续两月,亚信、中兴闯进前十
长夜之中蓄力待,势如破晓初光披. 2023年11月的 墨天轮中国数据库流行度排行 火热出炉,本月共有283个数据库参与排名.本月排行榜前十名变动较大,TiDB 上升一位居第4,达梦奋勇向前重归第6,亚 ...