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

111、代码覆盖率实战:coverage.py、分支覆盖、HTML 报告与 CI 门禁

111、代码覆盖率实战:coverage.py、分支覆盖、HTML 报告与 CI 门禁

上周五晚上十一点,我正盯着屏幕上的一个诡异bug——某个API接口在测试环境跑得欢,一上生产就偶尔返回500。查了半天,发现是某个if-else分支在测试里压根没走到。测试同学拍着桌子说“我测了”,但代码覆盖率报告一拉,那个分支赤裸裸地标红。这种“你以为你测了”的错觉,比没测更可怕。今天这篇笔记,就是我从那次事故里扒出来的血泪经验。

为什么覆盖率不是万能的,但没有它万万不能

先泼盆冷水:100%覆盖率不代表没bug。我见过一个项目,覆盖率95%,但核心业务逻辑里有个条件判断写反了,因为测试数据恰好让两个分支结果一样,所以绿油油一片。覆盖率是告诉你“哪些代码没被测试摸过”,而不是“哪些代码是对的”。但反过来,如果你连覆盖率都不看,那就像闭着眼睛开车——撞了才知道。

coverage.py 入门:别只跑coverage run

很多人装完coverage.py,上来就coverage run -m pytest,然后coverage report看个百分比就完事了。这跟没测差不多。我习惯这样玩:

# 先跑测试,带上分支覆盖和上下文信息</
http://www.jsqmd.com/news/1109202/

相关文章:

  • MetaTube插件:为Jellyfin/Emby打造终极元数据管理解决方案
  • 基于Si4731与PIC18F2550的DIY数字收音机开发指南
  • 嵌入式设备如何通过A5000加密芯片实现安全云端连接
  • Windows 11 LTSC Microsoft Store集成技术实现深度解析
  • Appium自动化测试实战:从核心原理到CI/CD集成的面试深度指南
  • DC-DC降压转换器设计与STM32控制实战
  • STM32与Si4731构建SDR收音机系统实战
  • MyComputerManager:Windows系统流氓快捷方式的终极解决方案
  • 女性与冰酒:紫桐冰酒属于她的优雅时刻
  • 为什么你连续2年申报失败?软考副高评审“隐性门槛”深度解密(含近3年未公开的量化评分细则)
  • 数据云平台TDC赋能企业全场景数字化转型
  • 基于STM32G491RE和A89307的大电流FOC电机控制方案
  • Translumo:终极实时屏幕翻译解决方案,让外语内容无障碍阅读
  • 解决openEuler升级难题:openeuler-upgrader工具日志分析与常见错误排查
  • 3分钟解锁跨设备微信聊天:wechat-need-web浏览器插件实战指南
  • Claude Code 上下文快满时,真正该做的是整理工作记忆
  • Claude Code 上下文压缩之后,哪些指令还能活下来
  • 移动安全测试实战:真机Burp抓包配置与HTTPS解密全攻略
  • 嵌入式系统中使用MC74HC165A扩展数字输入的实践指南
  • 万德高科网关管理软件CNC数据采集使用教程——1.1发那科CNC数采步骤
  • Metasploit渗透测试框架:从模块化架构到实战攻防演练
  • P1394 山上的国度【洛谷算法习题】
  • AI编排实战:MuleSoft+LangChain构建企业级LLM集成中枢
  • 3步彻底解决Windows软件兼容性问题:Visual C++运行库完整指南
  • 用 OpenClaw 做一份完整 PPT:从主题、提纲到 slide deck
  • 6DoF运动追踪:IMU与MCU协同实现原理与实践
  • 3步完成B站4K高清视频下载:开源工具终极配置指南
  • 3分钟解锁微信网页版:跨设备聊天的终极解决方案
  • 佳能打印机报错1700,1702,1704怎么维修?其实不用维修,只需要用清零软件清零一下就行,在家2分钟修好,常见型号:ix6780,g2800,g3800,g6080,g5080,ip8780
  • 5分钟终极指南:如何用深蓝词库转换工具轻松迁移20+输入法词库