pytest官方文档解读fixtures的autouse
作者:把苹果咬哭的测试笔记 发布时间:2023-06-22 01:18:58
标签:pytest,fixtures,autouse
现在我们已经知道了,fixtures是一个非常强大的功能。
那么有的时候,我们可能会写一个fixture,而这个fixture所有的测试函数都会用到它。
那这个时候,就可以用autouse自动让所有的测试函数都请求它,不需要在每个测试函数里显示的请求一遍。
具体用法就是,将autouse=True传递给fixture的装饰器即可。
import pytest
@pytest.fixture
def first_entry():
return "a"
@pytest.fixture
def order(first_entry):
return []
@pytest.fixture(autouse=True)
def append_first(order, first_entry):
return order.append(first_entry)
def test_string_only(order, first_entry):
assert order == [first_entry]
def test_string_and_int(order, first_entry):
order.append(2)
assert order == [first_entry, 2]
先来看第一个测试函数test_string_only(order, first_entry)的执行情况:
虽然在测试函数里请求了2个fixture函数,但是order拿到的并不是[],first_entry拿到的也并不是"a"。
因为存在了一个autouse=True的fixture函数,所以append_first先会被调用执行。
在执行append_first过程中,又分别请求了order、 first_entry这2和fixture函数。
接着,append_first对分别拿到的[]和"a"进行append处理,最终返回了["a"]。所以,断言assert order == [first_entry]是成功的。
同理,第二个测试函数test_string_and_int(order, first_entry)的执行过程亦是如此。
来源:https://www.cnblogs.com/pingguo-softwaretesting/p/14475652.html


猜你喜欢
- 例1:#!/usr/bin/perluse strict; use warnings;my $test = "asdf"
- 1 关于 Matplotlib 模块Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块
- 1. imageZMQ库实现imageZMQ库链接:https://github.com/jeffbass/imagezmq该库原本是用于树
- SQL Server数据库的六个实用技巧:(一)挂起操作在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这里往往重启无用
- 有些时候,我们需要画图后的二进制数据流,matplotlib没有提供相关的api,通过源码查看与百度,得到下面此方法import matpl
- 前言:python利用matplotlib库中的plt.ion()函数实现即时数据动态显示:1.非定长的时间轴代码示例:# -*- codi
- MySQL变量包括系统变量和系统变量。这次的学习任务是用户自定义变量。用户变量主要包括局部变量和会话变量。用户自定义变量的声明方法形如:@v
- python入门之语句,包括if语句、while语句、for语句,供python初学者参考。//if语句例子name = 'peir
- 目录1.1 题目1.2 思路1.2.1 发送请求1.2.2 解析网页1.2.3 获取结点1.2.4 数据保存 (单线程)1.2.4 数据保存
- 前言:在Python中,如果我们想要在遍历一组数据的过程中,对这组数据进行修改,通常会出现许多问题,例如对列表进行上述操作时, 会忽略部分数
- Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Micr
- 1、更新NVIDIA驱动 选对应自己显卡的驱动,(选studio版本,不要game版本)驱动链接 2、添加Anacond
- 前言本文主要记录python下音频常用的操作,以.wav格式文件为例。其实网上有很多现成的音频工具包,如果仅仅调用,工具包是更方便的。更多p
- 应用场景:在进行多选的时候一般默认显示第一个。实现方法:纯vue实现例子:<span v-for="(one,index)
- 整理文档,搜刮出一个vue中如何实现变量和字符串拼接的代码,稍微整理精简一下做下分享。在data中定义变量:data() { r
- 1、从外部文档中粘贴时,如果不想要其格式,只要文字,可以使用“Edit->paste as text”命令,而不要直接Ctrl+V。2
- Windows10本机环境:win10未安装node,安装了nvm工具,尝试使用nvm安装我开发环境的node版本(10.9.0 or la
- 按照固定的字符,拆分已有的字符串split(sep, n, expand = False):sep:用于分割的字符串n:分割为多少列expa
- 在使用Django做前端后端项目时,登陆认证方法往往使用的是jwt_token,但是想自定义登陆成功和失败的返回体。1.当用户名和密码正确就
- 本文介绍了多个 Python IDE,并评价其优缺点。读者可以参考此文列举的 Python IDE 列表,选择适合自己的编辑器。写 Pyth