Python pytest fixture夹具
Python pytest fixture夹具
一、简要描述
在自动化测试过程中,为测试用例提前准备的一个运行环境,这个测试环境被称为测试夹具。
测试夹具的本质是一个函数,在函数上方加上@pytest.fixture()声明即可成为夹具。
在测试用例方法执行之前的称为前置条件,测试用例方法执行之后的称为后置条件。以yield作为标记,yield之前的代码为前置条件执行的代码,反之为后置条件执行的代码。
在夹具中的yield后面可以传递参数(想要返回的值),即前置条件的返回值。yield与return类似,可以有返回值,但yield不一样,执行完yield之后还可以继续往下运行,而函数遇到return就终止了。
二、使用方式
方法一:把夹具的函数名称作为参数传到测试用例函数当中。若要获取夹具的返回值,可以直接使用夹具函数名称。
方法二:在测试用例函数上方添加@pytest.mark.usefixtures()标记,并将夹具函数名称传递到usefixtures()中,可以传多个值,如@pytest.mark.usefixtures('function_before', 'function_two')。不能接受夹具的返回值,即测试用例函数中要使用夹具的返回值时,该方法不适用。
三、作用域
根据@pytest.fixture()中scope参数不同,作用域区分如下:
function(函数):每个测试用例函数执行时都会执行一次,默认值
class(类):不论有多少测试用例,整个类只会运行一次
module(模块):不论有多少测试用例,整个模块(文件)下只运行一次
package(包):不论有多少测试用例,整个包(文件夹)下只运行一次
session:不论有多少测试用例,整个pytest下只会运行一次
四、自动使用
将@pytest.fixture()中autouse参数设为True,即可自动使用夹具,不需要一个个传参数,默认值为False。
五、conftest.py
共享夹具fixture,将夹具单独存放到conftest.py中(文件名称是固定的,文件放在项目根目录),用例模块不需要导入模块名,就可以直接使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构