SuperAPI AI 工具集

coverage-reporting

测试与质量

查看项目

更新于 10-16 09:30

技能介绍

覆盖率报告技能用于在测试覆盖率收集和报告环节提供规范与流程。适用场景包括覆盖率目标设定、CI 覆盖率收集、PR 覆盖率评论、覆盖率趋势跟踪和覆盖率门禁。

核心原则强调:覆盖率是基线不是目标,80% 覆盖率不等于 80% 质量;关注增量覆盖率,新代码不低于 80% 比总覆盖率更有意义;不追求 100%,getter、setter 和配置不需要测;分层看目标,业务逻辑不低于 90%,Controller 不低于 60%,工具函数不低于 80%;趋势比绝对值重要,覆盖率不能下降。

资料列出的工具包括 Codecov(多语言,SaaS 报告与 PR 评论)、Coveralls(多语言,SaaS 报告)、SonarQube(多语言,自建与质量门禁)、Istanbul/c8(JS/TS 收集器)、JaCoCo(Java 收集器)、coverage.py(Python 收集器)、go test -cover(Go 内置)。

覆盖率目标表:Domain/Service 不低于 90%(核心业务),Controller 不低于 60%(集成测试覆盖),Utils 不低于 80%(工具函数),总体不低于 70%(基线),增量(新代码)不低于 80%(PR 门禁)。

CI 集成示例包括使用 Vitest 覆盖率命令 pnpm test:coverage,配合 codecov/codecov-action@v4 上传 coverage/lcov.info 并设置 fail_ci_if_error;以及通过读取 coverage/coverage-summary.json 中的总行覆盖率进行门禁判断,低于 70 则退出。配套模板为 templates/coverage-config-template.md,覆盖配置、目标与 CI。

质量自检清单包括目标设定、CI 自动收集、PR 增量评论、门禁不能下降、趋势跟踪、分层目标和不追求 100%。常见坑包括追求 100%、只看总覆盖率、不设门禁、把覆盖率等同于质量、不看趋势。该技能上游依赖单元/集成/e2e 测试产生覆盖率,下游与 ci-test-integration、qa-engineer quality-gate 协作。其他细节暂未提供。