跳转至

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个百分点,允许新代码短暂低于目标但不低于底线。

理由

  1. 渐进提升:29% → 60% 的跳跃不可行,需要阶段性目标
  2. CI 实用性:持续失败的 CI 比无用更糟——团队会忽略失败的 CI
  3. 计划对齐:与 DEVELOPMENT_PLAN_V2 的里程碑对齐

后果

  • pytest.ini fail_under 需调整为 40(当前阶段)
  • CI yml COVERAGE_TARGET 需同步调整
  • 每个阶段结束后更新门控值