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

Pytest 输出捕获详解:掌握如何查看和控制打印信息

概述

在编写测试时,我们常常会在代码中使用 print() 来调试逻辑。但在默认情况下,Pytest 会自动捕获标准输出(stdout)和标准错误(stderr),这意味着你在测试中写的 print() 不会直接显示在终端上

什么是输出捕获

输出捕获(Output Capture) 是指 Pytest 在执行测试时,会自动拦截程序中所有通过 print()sys.stdout.write() 等方式输出的内容,并将其保存起来,只有当测试失败时才会显示这些输出内容。

这种设计的初衷是:

  • 避免大量无用输出干扰正常测试结果。
  • 提高测试报告的可读性。
  • 只展示出错时的调试信息,方便定位问题。

基本原理简述

当你运行 pytest 命令时,默认会启用以下两个捕获器:

捕获器 捕获内容
-s / --capture 控制是否捕获 stdoutstderr
--showlocals 显示局部变量(不是输出捕获,但常配合使用)

默认行为如下:

  • 成功测试:不显示任何 print() 内容。
http://www.dtcms.com/a/290157.html

相关文章:

  • Nacos 探活机制深度解析:临时 / 永久实例差异及与 Sentinel 的熔断协作
  • C++11之右值引用与移动语义(提高效率)重要
  • 「日拱一码」033 机器学习——严格划分
  • 【VASP】VASP 机器学习力场(MLFF)实战
  • 机器学习对词法分析、句法分析、浅层语义分析的积极影响
  • Taro 本地存储 API 详解与实用指南
  • 京东疯狂投资具身智能:众擎机器人+千寻智能+逐际动力 | AI早报
  • 从“被动照料”到“主动预防”:智慧养老定义的养老4.0时代
  • 迁移科技3D视觉系统:赋能机器人上下料,开启智能制造高效新纪元
  • Nacos中feign.FeignException$BadGateway: [502 Bad Gateway]
  • 第15次:商品搜索
  • Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡
  • Java-78 深入浅出 RPC Dubbo 负载均衡全解析:策略、配置与自定义实现实战
  • LeetCode - 3274. Check if Two Chessboard Squares Have the Same Color
  • 【Semi笔记】Semisupervised Change Detection With Feature-Prediction Alignment
  • .NET SDK 9.0.200引入对SLNX解决方案文件的支持
  • compser json和lock的作用区别
  • 【qml-3】qml与c++交互第二次尝试(类型方式)
  • 【C++11】哈希表与无序容器:从概念到应用
  • ElasticSearch:不停机更新索引类型(未验证)
  • git switch
  • (LeetCode 面试经典 150 题) 219. 存在重复元素 II (哈希表)
  • taro微信小程序的tsconfig.json文件说明
  • 自动化与安全 - 将 Terraform 集成到 CI/CD
  • 编译支持cuda硬件加速的ffmpeg
  • 数据库和数据仓库的区别
  • day27 力扣332.重新安排行程 力扣51. N皇后 力扣37. 解数独 力扣455.分发饼干 力扣376. 摆动序列 力扣53. 最大子序和
  • 云原生周刊:K8s 中的后量子密码学
  • OpenCV计算机视觉实战(16)——图像分割技术
  • 微服务的编程测评系统-身份认证-管理员登录前端