当前位置: 首页 > news >正文

11、pytest断言预期异常

官方用例

# content of test_exception_zero.py
import pytestdef test_zero_division():with pytest.raises(ZeroDivisionError):1/0
# content of test_exception_runtimeerror.py
import pytestdef 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 pytestdef myfunc():raise ValueError("Exception 123 raised")def test_match():with pytest.raises(ValueError, match=r".* 123 .*"):myfunc()
# content of test_exception_indexerror.py
import pytestdef f():a = []a[1]=2@pytest.mark.xfail(raises=IndexError)
def test_f():f()

解读与实操

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

在这里插入图片描述

  • 访问实际的断言内容

在这里插入图片描述

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

在这里插入图片描述

  • 通过xfail指定异常参数

在这里插入图片描述

场景应用

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

相关文章:

  • JVM之jps虚拟机进程状态工具
  • MySQL之时间戳(DateTime和TimeStamp)
  • 深度学习设计基于Tensorflow卷积神经网络猫的品种识别系统
  • GAN:SNGAN-谱归一化GANs
  • BearPi Std 板从入门到放弃 - 引气入体篇(3)(上两篇前言)
  • STM32单片机项目实例:基于TouchGFX的智能手表设计(1)项目介绍及GUI界面基础
  • 创建conan包-打包现有二进制文件
  • 用HeidiSQL在MySQL中新建用户
  • JIRA 重建索引
  • TiDB专题---3、TiDB与MySQL兼容性对比
  • python提取通话记录中的时间信息
  • 概率论与数理统计-第五章 数理统计的基础知识
  • 二叉树的实现(纯C语言版)
  • Backend - Django JsonResponse HttpResponse
  • Golang实践录:读取xml配置文件
  • 2019.2.20 c++ 知识梳理
  • CSS实用技巧干货
  • django开发-定时任务的使用
  • Docker容器管理
  • Invalidate和postInvalidate的区别
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • magento2项目上线注意事项
  • mockjs让前端开发独立于后端
  • Vue官网教程学习过程中值得记录的一些事情
  • vue自定义指令实现v-tap插件
  • Vue组件定义
  • Webpack 4 学习01(基础配置)
  • 产品三维模型在线预览
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 关于for循环的简单归纳
  • 欢迎参加第二届中国游戏开发者大会
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 警报:线上事故之CountDownLatch的威力
  • ​如何防止网络攻击?
  • #QT(一种朴素的计算器实现方法)
  • #stm32驱动外设模块总结w5500模块
  • (1)Nginx简介和安装教程
  • (9)STL算法之逆转旋转
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (HAL库版)freeRTOS移植STMF103
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)ABI是什么
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .Net 8.0 新的变化
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET MVC 验证码
  • .Net Web项目创建比较不错的参考文章
  • .net操作Excel出错解决
  • .net程序集学习心得
  • .net和jar包windows服务部署
  • .net和php怎么连接,php和apache之间如何连接
  • @ConfigurationProperties注解对数据的自动封装
  • @selector(..)警告提示
  • @软考考生,这份软考高分攻略你须知道