SuperAPI AI 工具集

test-coverage-improver

测试与质量

查看项目

更新于 10-29 21:47

技能介绍

用途

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 路由测试,或希望系统化排查分支与边界覆盖缺口的开发团队。

限制

该技能为流程指导与模板参考,具体命令、配置与模板需结合项目实际调整;资料未说明其支持的测试框架范围之外的语言生态、自动化程度、价格与平台限制。