| name | test-runner |
| description | 运行测试并分析结果,提供详细的测试报告;触发词:运行测试、测试运行、执行测试、/test-runner |
| version | 1.0.0 |
Test Runner — 测试运行技能
Purpose
运行项目测试,分析测试结果,提供详细的测试报告和改进建议。
Step 1:确认测试范围
用 AskUserQuestion 询问:
- 测试类型:单元测试、集成测试、端到端测试、所有测试
- 测试范围:全部测试、指定文件、指定方法
- 测试框架:Jest、Vitest、Mocha、Pytest等(自动检测)
- 覆盖率要求:是否生成覆盖率报告
Step 2:检测测试环境
检测测试框架
ls package.json
cat package.json | grep -E "(jest|vitest|mocha|jasmine)"
ls requirements.txt setup.py pyproject.toml
cat requirements.txt | grep -E "(pytest|unittest|nose)"
ls pom.xml build.gradle
cat pom.xml | grep -E "(junit|testng)"
检测测试文件
find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" -o -name "test_*"
find . -type d -name "test" -o -name "tests" -o -name "__tests__"
Step 3:运行测试
运行所有测试
npm test
yarn test
pnpm test
pytest
python -m unittest discover
mvn test
gradle test
运行指定测试
npm test -- --testPathPattern=<模式>
npm test -- --testNamePattern=<名称>
pytest <文件路径>::<测试方法>
python -m unittest <测试类>.<测试方法>
mvn test -Dtest=<测试类>#<测试方法>
生成覆盖率报告
npm test -- --coverage
npx jest --coverage
pytest --cov=<模块>
coverage run -m pytest
coverage report
mvn test jacoco:report
Step 4:分析测试结果
结果统计
grep -c "PASS" <测试输出>
grep -c "FAIL" <测试输出>
grep -c "SKIP" <测试输出>
echo "scale=2; $PASS * 100 / ($PASS + $FAIL + $SKIP)" | bc
失败详情
grep -A 10 "FAIL" <测试输出>
grep -B 5 -A 10 "Error\|Exception" <测试输出>
性能分析
grep -o "Time: [0-9.]*" <测试输出> | tail -5
grep "Time:" <测试输出> | tail -1
Step 5:生成测试报告
报告格式
🧪 测试执行报告
================
📊 测试概览
- 测试框架: <框架名称>
- 测试文件: <数量>
- 测试方法: <数量>
- 执行时间: <时间>
📈 测试结果
- 通过: <数量> (<百分比>%)
- 失败: <数量> (<百分比>%)
- 跳过: <数量> (<百分比>%)
- 错误: <数量> (<百分比>%)
✅ 通过的测试
1. <测试1>
2. <测试2>
❌ 失败的测试
1. <测试1>: <失败原因>
2. <测试2>: <失败原因>
⚠️ 跳过的测试
1. <测试1>: <跳过原因>
🔧 改进建议
1. <建议1>
2. <建议2>
3. <建议3>
📁 覆盖率报告
- 行覆盖率: <百分比>%
- 函数覆盖率: <百分比>%
- 分支覆盖率: <百分比>%
注意事项
- 确保测试环境正确配置
- 测试前清理临时文件和状态
- 对于数据库测试,使用事务回滚
- 记录测试环境信息(操作系统、版本等)
- 保存测试报告供后续分析
- 对于性能测试,多次运行取平均值