name: test-coverage-analyzer description: 分析测试覆盖率报告,识别漏洞,并推荐测试的优先区域。在审查覆盖率、查找未测试代码或规划测试改进时使用。
测试覆盖率分析器
分析测试覆盖率并识别测试漏洞。
快速开始
运行覆盖率并分析结果:
# JavaScript/TypeScript
npm test -- --coverage
# Python
pytest --cov=src --cov-report=term-missing
# Go
go test -cover ./...
说明
步骤 1: 生成覆盖率报告
JavaScript/TypeScript (Jest):
npm test -- --coverage --coverageReporters=text --coverageReporters=lcov
JavaScript/TypeScript (Vitest):
vitest run --coverage
Python (pytest):
pytest --cov=src --cov-report=html --cov-report=term-missing
Go:
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
步骤 2: 分析覆盖率指标
查看这些关键指标:
- 行覆盖率: 执行的行的百分比
- 分支覆盖率: 测试的条件分支的百分比
- 函数覆盖率: 调用的函数的百分比
- 语句覆盖率: 执行的语句的百分比
目标阈值:
- 关键代码: 80%+ 覆盖率
- 标准代码: 60%+ 覆盖率
- UI/配置: 40%+ 覆盖率
步骤 3: 识别漏洞
寻找:
- 未覆盖的函数: 覆盖率为 0% 的函数
- 部分覆盖: 覆盖率 <50% 的函数
- 缺失分支: 未测试的 if/else 路径
- 错误路径: 未测试的 catch 块
- 边界情况: 未测试的边界条件
步骤 4: 优先测试
高优先级 (首先测试):
- 覆盖率为 0% 的业务逻辑
- 安全关键函数
- 支付/交易代码
- 数据验证逻辑
- 错误处理路径
中等优先级 (其次测试):
- API 端点
- 数据库操作
- 实用函数
- 配置逻辑
低优先级 (如果有时间):
- 简单的 getters/setters
- UI 展示逻辑
- 类型定义
- 生成代码
步骤 5: 创建行动计划
对于每个漏洞:
- 识别未测试的代码
- 确定所需的测试类型(单元/集成/e2e)
- 估计工作量(小/中/大)
- 分配优先级(高/中/低)
- 创建测试实施任务
常见模式
模式: 查找未测试文件
# Jest
npm test -- --coverage --collectCoverageFrom='src/**/*.{js,ts}' --coverageThreshold='{"global":{"lines":0}}'
# pytest
pytest --cov=src --cov-report=term-missing | grep "0%"
模式: 检查特定模块
# Jest
npm test -- path/to/module --coverage
# pytest
pytest tests/test_module.py --cov=src.module --cov-report=term-missing
模式: 强制执行覆盖率阈值
// package.json (Jest)
{
"jest": {
"coverageThreshold": {
"global": {
"branches": 70,
"functions": 70,
"lines": 70,
"statements": 70
}
}
}
}
高级内容
更多详细信息,请见:
- Coverage Tools - 工具特定配置和使用
- Testing Patterns - 常见测试模式和最佳实践