用途
Test Coverage Improver 用于分析测试覆盖缺口,并生成测试来提升覆盖率。适用于三种场景:改善测试覆盖率、查找未被测试的代码、编写缺失的测试。其核心工作流程为:运行覆盖率报告以识别缺口,优先处理关键或复杂的代码路径,为未覆盖代码编写测试,最后验证覆盖率有所提升。
主要能力
覆盖率报告生成
技能给出几种常见测试工具的覆盖率命令:
- Jest:
npx jest --coverage - Vitest:
npx vitest --coverage - NYC(Istanbul,适用于任意测试运行器):
npx nyc npm test - 查看 HTML 报告:
open coverage/lcov-report/index.html
覆盖率目标参考
技能提供一份指标目标表,按行、分支、函数、语句四类指标给出最低、良好、优秀三档参考值:行覆盖率最低 70%、良好 80%、优秀 90% 以上;分支覆盖率最低 60%、良好 75%、优秀 85% 以上;函数覆盖率最低 70%、良好 80%、优秀 90% 以上;语句覆盖率最低 70%、良好 80%、优秀 90% 以上。
测试模板
技能附带多类测试示例,供编写缺失测试时参考:
- 单元测试(Jest/Vitest):如对
calculateTotal的求和、空数组、小数价格断言。 - 异步函数测试:验证正常返回数据与不存在用户时的抛错。
- 依赖 Mock:使用
vi.mock与vi.fn模拟邮件发送模块,并断言调用参数。 - React 组件测试:使用
@testing-library/react与userEvent验证渲染、点击回调、加载禁用状态。 - API 路由测试:使用
node-mocks-http的createMocks调用 handler 并断言状态码与响应数据。
分支覆盖检查清单
列出应覆盖的分支场景:if/else 分支、三元运算符、switch 各分支(含 default)、try/catch 块、提前返回、空值合并(??)、可选链结果(?.)、循环条件(0 次、1 次、多次迭代)。
覆盖率配置示例
给出 Vitest 配置片段,设置 v8 覆盖率提供器、text/html/lcov 报告器、排除目录与文件,以及行、分支、函数、语句的阈值(80/75/80/80)。
测试优先级建议
按以下顺序安排测试:关键路径(认证、支付、数据变更)、复杂逻辑(算法、状态机、计算)、错误处理(catch 块、错误边界)、边界情况(空数组、null 值、边界值)、集成点(API 调用、数据库查询)。
使用方式
按技能给出的流程操作:先运行覆盖率命令生成报告并查看 HTML 报告,对照目标与检查清单找出未覆盖的关键代码,参考测试模板编写测试,再重新运行覆盖率验证提升效果。
适用场景
适用于使用 Jest、Vitest、NYC 等工具的前端或 Node.js 项目,尤其是需要补充单元测试、组件测试、API 路由测试,或希望系统化排查分支与边界覆盖缺口的开发团队。
限制
该技能为流程指导与模板参考,具体命令、配置与模板需结合项目实际调整;资料未说明其支持的测试框架范围之外的语言生态、自动化程度、价格与平台限制。