Python单元测试pytest捕获日志输出

使用pytest进行单元测试时,遇到了需要测试日志输出的情况,查看了文档

https://docs.pytest.org/en/latest/how-to/capture-stdout-stderr.html

https://docs.pytest.org/en/latest/how-to/logging.html

然后试了一下,捕捉logger.info可以用caplog,获取print输出可用capsys,Demo如下:

- a.py

import logginglogger = logging.getLogger(__name__)
LOG_INFO = "I'm a teapot"
PRINT_MSG = "No thing to do."def function_with_logger(msg=None):if msg is None:msg = LOG_INFOlogger.info(msg)def function_include_print():print(PRINT_MSG)

- test_a.py

import loggingfrom a import LOG_INFO, PRINT_MSG, function_include_print, function_with_loggerdef test_logger(caplog):caplog.set_level(logging.INFO)function_with_logger()log_messages = [record.message for record in caplog.records]assert LOG_INFO in log_messagescaplog.clear()function_with_logger("foo")assert "foo" in caplog.textdef test_print(capsys):function_include_print()captured = capsys.readouterr()assert PRINT_MSG in captured.out

- 验证:

pytest test_a.py

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

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

相关文章

大语言模型及提示工程在日志分析任务中的应用 | 顶会IWQoS23 ICPC24论文分享

本文是根据华为技术专家陶仕敏先生在2023 CCF国际AIOps挑战赛决赛暨“大模型时代的AIOps”研讨会闪电论文分享环节上的演讲整理成文。 BigLog:面向统一日志表示的无监督大规模预训练方法 BigLog: Unsupervised Large-scale Pre-training for a Unified Log Represen…

【azure笔记 1】容器实例管理python sdk封装

容器实例管理python sdk封装 测试结果 说明 这是根据我的需求写的,所以有些参数是写死的,比如cpu核数和内存,你可以根据你的需要自行修改。前置条件: 当前环境已安装python3.8以上版本和azure cli并且已经登陆到你的账户 依赖安…

RocketMQ之Topic和Tag最佳实践

一、Topic是什么?它的作用? Topic即主题,是消息队列中用于对消息进行分类和组织的一种机制,它有以下三种作用: 标识消息分类:RocketMQ的主题用于对消息进行分类和组织。通过为不同类型的消息分配不同的主题…

Python八股文:基础知识Part1

1. 不用中间变量交换 a 和 b 这是python非常方便的一个功能可以这样直接交换两个值 2. 可变数据类型字典在for 循环中进行修改 这道题在这里就是让我们去回答输出的内容,这里看似我们是在for循环中每一次加入了都在list中加入了一个字典,然后字典的键值…

本地项目提交 Github

工具 GitIdeaGithub 账号 步骤 使用注册好的 Github 账号,登陆 Github; 创建 Repositories (存储库),注意填写图上的红框标注; 创建完成之后,找到存储库的 ssh 地址或 https 地址,这取决于你自己的配置…

TiDB 组件 GC 原理及常见问题

本文详细介绍了 TiDB 的 Garbage Collection(GC)机制及其在 TiDB 组件中的实现原理和常见问题排查方法。 TiDB 底层使用单机存储引擎 RocksDB,并通过 MVCC 机制,基于 RocksDB 实现了分布式存储引擎 TiKV,以支持高可用分…

跨框架探索:React Redux 和 Vuex 对比分析快速掌握React Redux

React Redux 和 Vuex 都是前端状态管理库,分别用于 React 和 Vue.js 框架。 它们都提供了一套规范的状态管理机制,帮助开发者更好地组织和管理应用状态。下面是它们的一些异同点: 相同点: 中心化状态管理:两者都提…

tailwindcss+vue3+vite+preline项目搭建

最近原子化样式比较火,用了一下确实还不错,也确实是用一些标准的样式能够使网页看起来比较统一,而且能够极大的减轻起名字的压力,有利有弊,就不一一细说了。 之前开发都是习惯于使用vitevue3来开发的,此次搭…

Rocky(Centos)数据库等高并发或高io应用,linux应调优系统

一、系统参数优化 默认的最大打开文件数是1024.不满足生产环境的要求。按照如下配置: 1、修改 systemctl管理的 servie 资源限制 编辑/etc/systemd/system.conf # 全局的打开文件数 DefaultLimitNOFILE2097152 # 全局打开进程数 DefaultLimitNPROC655352、调整系…

Windows下编译boost库

官网:https://www.boost.org/ 使用git bash运行bootstrap.sh 运行b2.exe,会生成bin.v2文件夹 Cmake引入

【springboot开发】MVC和SSM

前言:关于MVC和SSM基本内容的梳理,以及两者之间的关系。 文章目录 1. 三层架构2. MVC3. SSM 1. 三层架构 三层架构是指: 视图层view(表现层): 用于显示数据和接收用户输入的数据,为用户提供一种交互式操作…

CADMap3D2024 2023下载地址及安装教程

CAD Map 3D是由Autodesk开发的一款专业的地图制作和GIS(地理信息系统)软件。它是AutoCAD系列软件的一个扩展,提供了一系列特定于地理数据的工具和功能。 CAD Map 3D主要用于处理和管理与地理空间相关的数据,在地图制作、城市规划…

stackqueuepriority_queue容器适配器仿函数反向迭代器

文章目录 容器适配器适配器STL标准库中stack和queue的底层结构 dequedeque原理介绍deque的缺陷为什么选择deque作为stack和queue的底层默认容器 stackstack介绍stack的使用stack模拟实现 queuequeue的介绍queue的使用queue的模拟实现 priority_queue(优先队列&#…

【算法刷题】八大排序算法总结(冒泡、选择、插入、二分插入、归并、快速、希尔、堆排序)

文章目录 八大排序算法总结1.冒泡排序2.选择排序3.插入排序4.二分插入排序5.归并排序6.快速排序7.希尔排序8.堆排序 八大排序算法总结 排序排序方法平均情况最好情况最坏情况空间稳定性1冒泡排序O(n2)O(n)O(n2)O(1)稳定2选择排序O(n2)O(n2)O(n2)O(1)不稳定3插入排序O(n2)O(n)O…

windows wireshark抓包rtmp推流出现TCP Retransmission

解决办法:tcp.port1935 && !(tcp.analysis.retransmission)

将扁平数据转换为树形数据的方法

当遇到了好多扁平数据我们都无从下手?不知道如何处理? 家人们 无脑调用这个函数就好了 接口请求回来以后 调用这个函数传入实参就可以用啦~ // 树形菜单函数 function GetTreeData(data) {let TreeData [];let map new Map(); //存在id,对应所在的内…

Unity之Unity面试题(三)

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之Unity面试题(三) TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取…

关于Salesforce DevOps的理解

“DevOps”是一组结合了软件开发 (Dev) 和运营 (Ops) 的实践,可帮助团队更快、更可靠地构建、测试和发布软件。 DevOps 的核心理念包括持续集成(Continuous Integration)、持续交付(…

1.微服务

一、微服务是什么 微服务是一种架构风格,即,一个应用应该是一组小型服务,每个服务器只负责一种服务,服务之间可以通过 HTTP 的方式进行互通。每一个功能元素最终都是一个可独立替换和独立升级的软件单元。 可以说,微…

SSL数字证书

SSL数字证书产品提供商主要来自于国外,尤其是美国,原理和使用操作系统一样,区别在于SSL数字证书目前无法替代性,要想达到兼容性99%的机构目前全球才3-4家,目前国内的主流网站主要使用的是国际证书,除了考虑…