合并卡在覆盖率门禁 80%,作者加了一个只调 getter 的测试类,覆盖率到 80.2% 通过。核心的退款分支一行没测,上线后小额退款算错。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

npx jest --coverage --collectCoverageFrom='src/**/*.ts'
git diff --unified=0 origin/main...HEAD -- 'src/**/*.ts' | grep '^+' | wc -l

门禁只看总行数覆盖率,不看变更部分的覆盖。补测试的动力来自过门禁,不是验证逻辑。这一点先确认清楚,后面就不用反复试。

「覆盖率绕过」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

改完隔一天再看一次,当场正常不代表能稳住。

具体做法是,把门禁改成看增量覆盖率 只看本次改动行;要求核心分支必须有断言 不只是执行到;抽查新增测试的断言数量 空断言不计入;门禁阈值按模块定 支付类单独提高。

改完照着核一遍,增量覆盖率低于 70% 时无法合并,新增测试里每个用例至少有一条有效断言。

作者 9823189