ADR-0004: 测试覆盖率目标调整
状态: 已接受 日期: 2026-04-03
背景
项目存在两套覆盖率目标,互不兼容:
| 来源 | 短期目标 | 长期目标 |
|---|---|---|
| pytest.ini (CI gate) | 60% (fail_under) | — |
| COMPREHENSIVE_DEVELOPMENT_PLAN_V2 | 45% (4月) | 65% (6月) |
| 实际覆盖率 | 29% | — |
CI 门控设置为 60%,但当前实际仅 29%,导致 CI 持续失败。计划V2 设定的 45% 阶段性目标更为现实。
决策
采用 COMPREHENSIVE_DEVELOPMENT_PLAN_V2 的阶段性目标:
| 日期 | 覆盖率目标 | CI fail_under |
|---|---|---|
| 2026-04-21 | 45% | 40 |
| 2026-05-31 | 55% | 50 |
| 2026-06-30 | 65% | 60 |
CI fail_under 设置为阶段性目标减去5个百分点,允许新代码短暂低于目标但不低于底线。
理由
- 渐进提升:29% → 60% 的跳跃不可行,需要阶段性目标
- CI 实用性:持续失败的 CI 比无用更糟——团队会忽略失败的 CI
- 计划对齐:与 DEVELOPMENT_PLAN_V2 的里程碑对齐
后果
- pytest.ini
fail_under需调整为 40(当前阶段) - CI yml
COVERAGE_TARGET需同步调整 - 每个阶段结束后更新门控值