首页/开发/代码质量与评审速查/行覆盖与分支覆盖:含义与局限
技术债与度量63 条

行覆盖与分支覆盖:含义与局限

覆盖度回答「哪些代码被执行过」:行覆盖粗、分支覆盖细;覆盖高不代表测试好(断言可能缺失),覆盖低也未必危险(生成代码、简单转发);它适合发现未测区域而非质量评分。

口径行覆盖 / 分支覆盖 / 路径覆盖(成本递增)
工具JaCoCo、Istanbul、coverage.py、Go cover
用法看未覆盖区域找风险,而非追数字

Go 覆盖率命令

Go 覆盖率命令
go test ./... -coverprofile=cover.out
go tool cover -html=cover.out -o cover.html
常见做法:新代码覆盖率设下限(如补丁覆盖率),存量整体数字只做趋势观察。

易错点

  • 拿整体覆盖率考核团队:数字被测试空壳灌水
  • 忽略分支口径:if 的两条路径只测一条也算「覆盖」

数据来源与参考

  • 各覆盖率工具文档(JaCoCo、Istanbul、coverage.py、Go cover)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌