11、pytest断言预期异常

news2024/9/26 5:15:15

官方用例

# content of test_exception_zero.py
import pytest

def test_zero_division():
    with pytest.raises(ZeroDivisionError):
        1/0
# content of test_exception_runtimeerror.py
import pytest

def test_recursion_depth():
    with pytest.raises(RuntimeError) as excinfo:
        def f():
            f()
            
        f()
    assert "maximum recursion" in str(excinfo.value)
# content of test_exception_valueerror.py
import pytest

def myfunc():
    raise ValueError("Exception 123 raised")
    
def test_match():
    with pytest.raises(ValueError, match=r".* 123 .*"):
        myfunc()
# content of test_exception_indexerror.py
import pytest

def f():
    a = []
    a[1]=2


@pytest.mark.xfail(raises=IndexError)
def test_f():
    f()

解读与实操

  • 使用pytest.raises作为断言的上下文管理器

在这里插入图片描述

  • 访问实际的断言内容

在这里插入图片描述

  • 通过正则表达式匹配异常的字符串

在这里插入图片描述

  • 通过xfail指定异常参数

在这里插入图片描述

场景应用

使用pytest.raises()在测试自己的代码有意引发的异常的情况下会更好;带有检查函数的@pytest.mark.xfail更适合记录未修复的Bug或依赖项中的Bug。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1284628.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32上模拟CH340芯片的功能 (一)

#虚拟串口模拟CH340# 后续代码更新放gitee 上 一、思路 1. 确定通信接口:CH340是一款USB转串口芯片,因此您需要选择STM32上的某个USB接口来实现USB通信。通常情况下,STM32系列芯片都有内置的USB接口,您可以根据您的具体型号选择…

Excel 实现在某一列中循环合并多行单元格

在 Excel 中,使用 VBA(Visual Basic for Applications)宏可以轻松实现多行合并单元格的操作。下面是一个简单的 VBA 代码实现循环合并3行单元格的示例: 1. 打开 Excel 在你的 Excel 文件中,按下 Alt F11 打开 VBA 编…

Raspberry Pi 2, 2 of n - Pi 作为 IoT 消息代理

目录 介绍 环境 先决条件 - 设置静态 IP 地址 安装 Mosquitto 启动/停止 Mosquitto 配置先决条件 - 安装 mqtt_spy 配置 Mosquitto 配置 Mosquitto - 无安全性 测试 Mosquitto 配置 - 无安全性 配置 Mosquitto - 使用密码身份验证 Mosquitto 测试 - 带密码验证 概括 介绍 在本文…

创建conan包-Understanding Packaging

创建conan包-Understanding Packaging 1 Understanding Packaging1.1 Creating and Testing Packages Manually1.2 Package Creation Process 本文是基于对conan官方文档Understanding Packaging翻译而来, 更详细的信息可以去查阅conan官方文档。 1 Understanding …

1. 了解继承的概念,掌握派生类的定义。2. 掌握派生类构造方法的执行过程。3. 掌握方法的重载与覆盖。4. 掌握抽象类的概念及上转型对象的使用

1、定义一个抽象类Shape,类中封装属性name指定图形名称,定义用于求面积的抽象方法。定义3个子类:圆形类Circle、梯形类Trapezoid和三角形类Triangle,都继承Shape类,子类中各自新增属性,定义构造方法、设置属…

中缀表达式转后缀表达式(详解)

**中缀表达式转后缀表达式的一般步骤如下: 1:创建一个空的栈和一个空的输出列表。 2:从左到右扫描中缀表达式的每个字符。 3:如果当前字符是操作数,则直接将其加入到输出列表中。 4:如果当前字符是运算符&a…

PyQt实战 创建一个PyQt5项目

前后端分离 参考链接 PyQt5实战(二):创建一个PyQt5项目_pyqt5实战项目_笨鸟未必先飞的博客-CSDN博客 项目目录 创建一个QT项目 调用pyuic工具将dialog.ui文件编译为Python程序文件ui_dialog.py。 # -*- coding: utf-8 -*-# Form implemen…

【专题】【中值定理-还原大法】

1)构造辅助函数 2)罗尔定理: 闭区间连续,开区间可导 F(a)F(b) 3)F‘(ξ)0,原命题得证 极限保号性:

Selenium启动Chrome插件(Chrome Extensions)

Selenium启动Chrome插件(Chrome Extensions) 需求描述: 在使用WebDriver启动Chrome浏览器时式启动一个默认设置(比较干净)的浏览器,但是我在自动化测试的过程中需要用到插件。 实现方法: 其一:启动浏览器的同时直接取安装包.cr…

3.5毫米音频连接器接线方式

3.5毫米音频连接器接线方式 耳机插头麦克风插头 绘制电路图注意事项 3.5毫米音频连接器分为单声道开关型和无开关型如下图: sleeve(套筒) tip(尖端) ring(环) 耳机插头 麦克风插头 绘制电路图…

玩转大数据6:实时数据处理与流式计算

引言 在当今的数字化时代,数据正在成为一种新的资源,其价值随着时间的推移而不断增长。因此,实时数据处理和流式计算变得越来越重要。它们在许多领域都有广泛的应用,包括金融、医疗、交通、能源等。本文将探讨实时数据处理和流式…

主题色变量和var实现多套主题换肤

文章目录 一、前言1.1、[VueElementUI实现多套主题换肤](https://blog.csdn.net/u012804440/article/details/133975511)1.2、[VueElementUI实现在线动态换肤](https://blog.csdn.net/u012804440/article/details/133975570) 二、实现2.1、多主题色定义2.2、根节点属性修改2.2.…

UVM验证环境中加入monitor

验证平台必须监测DUT的行为,只有知道DUT的输入输出信号变化之后,才能根据这些信号变化来判定DUT的行为是否正 确。 验证平台中实现监测DUT行为的组件是monitor。 driver负责把transaction级别的数据转变成DUT的端口级别,并驱动给DUT&…

EM32DX-C4【C#】

1外观: J301 直流 24V 电源输入 CAN0 CAN0 总线接口 CAN1 CAN1 总线接口 J201 IO 接线段子 S301-1、S301-2 输出口初始电平拨码设置 S301-3~S301-6 模块 CAN ID 站号拨码开关 S301-7 模块波特率拨码设置 S301-8 终端电阻选择开关 2DI: 公共端是…

Powercli常用命令

背景 vcenter web界面不如命令行快,且不能批量操作。 根据实际需求逐步补充使用到的powercli 命令。 00 通过bat脚本配置terminal标签页 在WindowsTerminal上配置新的标签页,实现打开标签页即默认连接vcenter。 脚本内容如下: echo off p…

Hadoop实验putty文件

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 很多朋友反馈做hadoop实验中的putty找不到Connection-SSH-Auth路径下找不到Private key for authentication私有密钥,无法将转…

vue: 线上项目element-ui的icon偶尔乱码问题

线上环境偶尔会复现, 具体: 一般使用不会出现这个问题,因为一般引入的是element-ui的css文件,问题出在于为了主题色变化啊,需要用到scss变量引入了scss文件。 import “~element-ui/packages/theme-chalk/src/index”…

IDEA插件:Apipost-Helper

Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里…

solidity实现ERC1155多代币标准

文章目录 1、NFT - 维基百科2、IERC1155MetadataURI3、IERC1155Receiver4、IERC11555、ERC11556、NFT11557、开源地址 1、NFT - 维基百科 ERC-1155 标准于2018年6月由Witek Radomski、Andrew Cooke、Philippe Castonguay、James Therien、Eric Binet及Ronan Sandford提出。此标…

RK3568平台开发系列讲解(Linux系统篇)device_node 转换成 platform_device

🚀返回专栏总目录 文章目录 一、DTB转换规则二、转换源码分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过设备树 device_node 转换成 platform_device 一、DTB转换规则 device 部分是用 platform_device 结构体来描述硬件资源的, 所以内核最终会将…