pytest---usefixtures简单使用

2023-11-04

  前面介绍的fixture都是通过函数的方式进行传参的,如果遇到一个class中都需要传入一个fixture,那一个个写进函数中,太麻烦,今天安静介绍一种方法,通过class直接传入fixture

usefixtures

usefixtures是fixture用来标记class中的一个方法。用法结果相当于和setup和teardown的结果一样。每个用例函数都会进行执行fixture中的前置内容和后置内容

#coding:utf-8

import pytest


@pytest.fixture()
def login():
    print('输入用户名,密码。完成登录')
    yield
    print('退出')

@pytest.mark.usefixtures('login')
class Test_01:

    def test_01(self):
        print('---用例01---')

    def test_02(self):
        print('---用例02---')

    def test_03(self):
        print('---用例03---')


if __name__ == '__main__':
    pytest.main(['-vs', 'test__01.py'])

通过执行结果可以发现,通过使用usefixture方法后,class下的每个用例都会执行前置和后置内容。

多个usefixture使用

如果我们需要对一个class中传入多个fixture,我们就可以直接叠加2个usefixture方法,有2种写法:

第一种:

直接在usefixture中进行加入另外的fixture方法名称

#coding:utf-8

import pytest

@pytest.fixture()
def fun():
    print('这是fun的fixture方法')

@pytest.fixture()
def login():
    print('输入用户名,密码。完成登录')
    yield
    print('退出')


@pytest.mark.usefixtures('login','fun')
class Test_01:

    def test_01(self):
        print('---用例01---')

    def test_02(self):
        print('---用例02---')

    def test_03(self):
        print('---用例03---')


if __name__ == '__main__':
    pytest.main(['-vs', 'test__01.py'])

这种方法的执行顺序,那个fixture名称在前面,就先执行那个方法

第2种:

通过叠加的形式进行传参,再次创建一个usefixture方法

#coding:utf-8

import pytest

@pytest.fixture()
def fun():
    print('这是fun的fixture方法')

@pytest.fixture()
def login():
    print('输入用户名,密码。完成登录')
    yield
    print('退出')


@pytest.mark.usefixtures('login')
@pytest.mark.usefixtures('fun')
class Test_01:

    def test_01(self):
        print('---用例01---')

    def test_02(self):
        print('---用例02---')

    def test_03(self):
        print('---用例03---')


if __name__ == '__main__':
    pytest.main(['-vs', 'test__01.py'])

这种方法的执行顺序,那个usefixture方法在下面,先执行那个。

混合使用

我们还有一种使用方法就是函数的fixture和类的usefixture同时使用

#coding:utf-8

import pytest

@pytest.fixture()
def fun():
    print('这是fun的fixture方法')

@pytest.fixture()
def login():
    print('输入用户名,密码。完成登录')
    yield
    print('退出')


@pytest.mark.usefixtures('login')
class Test_01:

    def test_01(self,fun):
        print('---用例01---')

    def test_02(self):
        print('---用例02---')

    def test_03(self,fun):
        print('---用例03---')


if __name__ == '__main__':
    pytest.main(['-vs', 'test__01.py'])

通过上面执行结果可以看出来,usefixture和fixture可以同时使用,执行的顺序肯定是先usefixture然后在fixture。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pytest---usefixtures简单使用 的相关文章

  • 查找 with: 块中定义的函数

    这是一些代码理查德 琼斯的博客 http www mechanicalcat net richard log Python Something I m working on 3 with gui vertical text gui labe
  • 替换字符串列表中的 \x00 的最佳方法?

    我有一个来自已解析 PE 文件的值列表 其中包括 x00每个部分末尾的空字节 我希望能够删除 x00字符串中的字节而不删除所有字节 x 文件中的 s 我试过做 replace and re sub 但并没有取得太大成功 使用Python 2
  • 用 Python 编写一个无操作或虚拟类

    假设我有这样的代码 foo fooFactory create 由于种种原因 fooFactory create 可能无法创建实例Foo 如果可以的话我想要fooFactory create 返回一个虚拟 无操作对象 这个对象应该是完全惰性
  • 如何用 python 和 sympy 解决多元不等式?

    我对使用 python 和 Sympy 还很陌生 并且遇到了使用 sympy 解决多元不等式的问题 假设我的文件中有很多函数 如下所示 cst sqrt x 2 cst exp sqrt cst x 1 4 log log sqrt cst
  • 类属性在功能上依赖于其他类属性

    我正在尝试使用静态类属性来定义另一个静态类属性 我认为可以通过以下代码来实现 f lambda s s 1 class A foo foo bar f A foo 然而 这导致NameError name A is not defined
  • Python 中 genfromtxt() 的可变列数?

    我有一个 txt具有不同长度的行的文件 每一行都是代表一条轨迹的一系列点 由于每条轨迹都有自己的长度 因此各行的长度都不同 也就是说 列数从一行到另一行不同 据我所知 genfromtxt Python 中的模块要求列数相同 gt gt g
  • Python:当前目录是否自动包含在路径中?

    Python 3 4 通过阅读其他一些 SO 问题 似乎如果moduleName py文件位于当前目录之外 如果要导入它 必须将其添加到路径中sys path insert 0 path to application app folder
  • 如何在 Windows 上使用 Python 3.6 来安装 Python 2.7

    我想问一下如何使用pip install对于 Python 2 7 当我之前安装并使用 Python 3 6 时 我现在必须使用 Windows 上的 Python 版本 pip install 继续安装 Python 3 6 我需要使用以
  • Python:随时接受用户输入

    我正在创建一个可以做很多事情的单元 其中之一是计算机器的周期 虽然我将把它转移到梯形逻辑 CoDeSys 但我首先将我的想法放入 Python 中 我将进行计数 只需一个简单的操作 counter 1 print counter 跟踪我处于
  • 行为:如何从另一个文件导入步骤?

    我刚刚开始使用behave http pythonhosted org behave 一个Pythonic BDD框架 使用小黄瓜语法 http docs behat org guides 1 gherkin html 行为需要一个特征 例
  • 反加入熊猫

    我有两个表 我想附加它们 以便仅保留表 A 中的所有数据 并且仅在其键唯一时添加表 B 中的数据 键值在表 A 和 B 中是唯一的 但在某些情况下键将出现在表 A 和 B 中 我认为执行此操作的方法将涉及某种过滤联接 反联接 以获取表 B
  • 使用 genfromtxt 导入 numpy 中缺失值的 csv 数据

    我有一个 csv 文件 看起来像这样 实际文件有更多的列和行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 假设文件的名称是info csv如果我尝试使用导入它 data numpy genfromtxt i
  • Python 中的这种赋值方式叫什么? a = b = 真

    我知道关于元组拆包 http docs python org tutorial datastructures html tuples and sequences但是当一行中有多个等号时 这个赋值被称为什么 阿拉a b True 它总是让我有
  • 在wxpython中使用wx.TextCtrl并在按钮单击后显示数据的简单示例 - wx新手

    我正在学习 python 并尝试使用 wxpython 进行 UI 开发 也没有 UI exp 我已经能够创建一个带有面板 按钮和文本输入框的框架 我希望能够在文本框中输入文本 并让程序在单击按钮后对输入框中的文本执行操作 我可以获得一些关
  • urllib2.urlopen() 是否实际获取页面?

    当我使用 urllib2 urlopen 时 我在考虑它只是为了读取标题还是实际上带回整个网页 IE 是否真的通过 urlopen 调用或 read 调用获取 HTML 页面 handle urllib2 urlopen url html
  • Python Flask 是否定义了路由顺序?

    在我看来 我的设置类似于以下内容 app route test def test app route
  • python中的sys.stdin.fileno()是什么

    如果这是非常基本的或之前已经问过的 我很抱歉 我用谷歌搜索但找不到简单且令人满意的解释 我想知道什么sys stdin fileno is 我在代码中看到了它 但不明白它的作用 这是实际的代码块 fileno sys stdin filen
  • Pandas 在特定列将数据帧拆分为两个数据帧

    I have pandas我组成的 DataFrameconcat 一行由 96 个值组成 我想将 DataFrame 从值 72 中分离出来 这样 一行的前 72 个值存储在 Dataframe1 中 接下来的 24 个值存储在 Data
  • 如何对字符串列表进行排序?

    在 Python 中创建按字母顺序排序的列表的最佳方法是什么 基本回答 mylist b C A mylist sort 这会修改您的原始列表 即就地排序 要获取列表的排序副本而不更改原始列表 请使用sorted http docs pyt
  • 将 Scikit-Learn OneHotEncoder 与 Pandas DataFrame 结合使用

    我正在尝试使用 Scikit Learn 的 OneHotEncoder 将 Pandas DataFrame 中包含字符串的列替换为 one hot 编码的等效项 我的下面的代码不起作用 from sklearn preprocessin

随机推荐

  • matplotlib: 绘制柱状图

    通过matplotlib绘制柱形图 第一个例子 from matplotlib import pyplot as plt y 10 11 12 11 9 8 13 10 创建y轴坐标 x list range 1 9 创建x轴坐标 创建x轴
  • C++字符串操作

    字符串操作 1 输入字符串 2 字符串输出 3 字符串长度 4 字符串分割 5 字符串比较 6 字符串赋值 7 判断字符串是否为空 8 字符串拼接 9 数组形式操作 10 单个字符操作 11 类型转换 1 输入字符串 字符串就是字符数组加上
  • 图像处理:双边滤波

    1 双边滤波 公式含义 q 输入的像素点 它代表上图中5 5的方框中其中的一个像素点 空间域核 图像像素域核 两个二维高斯函数 二维高斯函数的公式为 进行了一些小的改动 让他们更加符合我们的要求 这里给出 和 的公式 m n 输入像素q的横
  • 2019年总结:把能努力的都努力好,最终等待命运垂青

    悟以往已不见 知来者之可追 2019年离我们而去 这是我在CSDN写下的第七篇年终总结 回首 2013年我感悟到 一万年太久 只争朝夕 2014年本科毕业 我抒写下 回忆大学四年的得与失 2015年我选择回到贵州工作 感叹 无他 唯心向尔
  • Android进步之十四:使用jackon的ObjectMapper的writeValueAsString方法可以把java对象转化成json字符串

    如何把java对象转化成json字符串并打印出来呢 这里就用到了jackon的jar包 使用writeValuesAsString的方法就可以把对角转化成json字符串 下面通过一个demo 来仔细体会下如何去转化 1 先建一个javaBe
  • 关于ARM_math数学库的使用

    关于ARM math数学库的使用 ARM math好强大的好吧 话不多说 请看截图 各种数学库看到没有 好强大的说 其实使用这些写函数 最快上手的方法就是看官方手册 话不多说 上官方链接arm math库的官网 举个栗子 一般步骤 1 首先
  • STM32 GPIO 8种输入输出

    STM32 GPIO 8种输入输出 输入 浮空输入 上拉输入 下拉输入 模拟输入 输出 开漏输出 复用开漏输出 推挽输出 复用推挽输出 总结 参考 输入 1 浮空输入 GPIO Mode IN FLOATING 2 上拉输入 GPIO Mo
  • Ubuntu:C++远程连接Mysql

    1 安装mysql sudo apt get install update sudo apt get install mysql server libmysqlclient dev 2 登录mysql并进行配置 sudo mysql u r
  • 启动其他APK的Activity方法

    启动其他APK的Activity方法 有两个app 分别叫做App1和App2 App1包含两个Activity 分别叫做App1 A和App1 B 其中App1 A是入口Activity 也就是App1 A设置intent filter
  • .NET 5.0发布,你的代码保护工具还够用吗?

    NET是程序员比较钟爱的一款编程工具 但它有一个致命的缺点 编译好的程序集很容易反编译成源代码 一旦被反编译 软件开发者的辛苦劳动将付诸东流 选择一款合格的 NET保护工具是非常重要的 如今 NET 5 0已经发布 你是如何评价的呢 无论怎
  • 【教程汇总】如何选择合适的坐标系及投影

    总结 considerations for choosing the coordinate system map purpose map extent map orientation latitude range national coor
  • QC11 premier Edition 安装注意事项

    安装环境 Windows Server 2003 SQLServer 2005 系统环境需求可查看 https h10078 www1 hp com cda hpms display main hpms content jsp zn bto
  • 深圳拟重点扶持12大数字经济产业:区块链、金融科技在列

    伴随着数字经济的高速增长 深圳市数字经济产业发展迎来政策春风 近日 深圳市工业和信息化局发布了关于公开征求 深圳市数字经济产业创新发展实施方案 征求意见稿 下称 实施方案 意见的通告 表示将努力建成全国领先 全球一流的数字经济产业创新发展引
  • OpenCV—基本数据结构与示例

    https blog csdn net iracer article details 51292349 OpenCV中强大的Mat类型大家已经比较熟悉了 这里梳理一些在工程中其他经常用到的几种基本数据类型 包括 Vec Scalar Poi
  • MSP430F5529输出PWM

    msp430f5529产生4路PWM波 改变占空比从而改变电机 直流减速电机 的速度 驱动电机必然会用到驱动模块 接下来就介绍一下驱动模块 L298N L298N驱动 若要对直流电机进行PWM调速 需设置IN1和IN2 即确定电机的转动方向
  • Java集合-List

    一 List集合概述 java util List接口继承自Collection接口 是单列集合的一个重要分支 习惯性地会将实现了List接口的对象称为List集合 在List集合中允许出现重复的元素 所有的元素是以一种线性方式进行存储的
  • ic卡校验码计算软件_CRC校验码简介及CRC16的计算方法

    点击上方 嵌入式从0到1 选择 置顶 星标公众号 干货福利 第一时间送达 什么是CRC校验 CRC即循环冗余校验码 Cyclic Redundancy Check 是数据通信领域中最常用的一种查错校验码 其特征是信息字段和校验字段的长度可以
  • 法师康的工人--计蒜客

    三个法师康的工人每天早上6点到工厂开始到三条产品生产线上组装桔子手机 第一个工人在200时刻开始 从6点开始计时 以秒作为单位 在生产线上开始生产 一直到1000时刻 第二个工人 在700时刻开始 在1100时刻结束 第三个工人从1500时
  • 在Docker上用3个Nacos1.3容器+一个MySQL5和8容器+一个Nginx容器进行集群的具体操作(Nacos集群版)

    在Docker上用Nacos1 3容器连接MySQL5 6和8 0 18容器进入持久化的具体操作 Nacos单机版 这里直接在linux中启动三个Nacos容器 文章目录 3个Nacos1 3容器 一个MySQL5 6容器 一个Nginx容
  • pytest---usefixtures简单使用

    前面介绍的fixture都是通过函数的方式进行传参的 如果遇到一个class中都需要传入一个fixture 那一个个写进函数中 太麻烦 今天安静介绍一种方法 通过class直接传入fixture usefixtures usefixture