← 中文资源

简体中文版本

覆盖率门禁

覆盖率门禁在低于阈值时阻断合并——作为“变更行”的棘轮有效,作为全局百分比则诱发刷分并掩盖未测的关键路径。

阅读英文原文

概念定义

覆盖率把测试纪律变成可强制的数字。门禁说的是:你改动的代码必须被执行。当棘轮用则复利,当分数用则腐化。

工作机制

插桩跟踪每次测试执行的行;diff 覆盖率把执行图与补丁求交——门禁问的是“这个 PR 是否新增了未测行为”。趋势模式对任何相对主干的下降判负,容忍不完美的历史但保证不再退步。

使用场景

应用按变更行设门禁,库按公共 API 面设门禁。门禁要配评审指引:数字标记遗漏,人判断测试有没有说出东西。

常见误区

覆盖率只度量执行到达,不度量断言强度——那需要变异测试或评审。全局 80% 门禁换来的是一万条零断言的执行测试。排除目录要讲卫生,否则生成代码与 vendored 树淹没信号;对生成代码的覆盖率波动阻断 PR 纯烧好感。行覆盖对“没有任何测试走过的分支”沉默——分支覆盖收窄但关不掉这个缺口。