测试生成技能
描述
自动分析源代码并生成对应的单元测试,包括Mock对象生成、边界条件测试和覆盖率分析报告。支持Vitest、Jest、Pytest和JUnit。
使用方法
/test-generator [源文件路径] [选项]
选项
--framework <name>- 测试框架: vitest, jest, pytest, junit (默认: 自动检测)--style <type>- 测试风格: unit, integration, e2e (默认: unit)--coverage- 分析现有测试覆盖率并补充缺失用例--mock-style <type>- Mock风格: manual, auto, spy (默认: auto)
执行步骤
- 分析源代码: 解析函数签名、类结构、依赖关系和公共API
- 识别测试用例: 确定正常路径、边界条件、错误处理和异步场景
- 生成Mock: 为外部依赖创建Mock对象和Stub函数
- 生成测试: 编写测试代码,包含describe/it结构、断言和清理逻辑
- 覆盖率报告: 分析已有测试覆盖率,标记未覆盖的代码路径
测试类型
| 类型 | 说明 | 场景 |
|---|---|---|
| 正常路径 | 验证预期输入的正确输出 | 标准参数调用 |
| 边界条件 | 验证极端和边界值 | 空值、最大值、零 |
| 错误处理 | 验证异常和错误情况 | 无效输入、网络错误 |
| 异步测试 | 验证Promise和回调 | API调用、定时器 |
| 快照测试 | 验证输出结构不变 | 组件渲染、序列化 |
输出格式
- 生成的测试文件内容(可直接保存运行)
- 测试用例清单和描述
- Mock依赖列表
- 预估覆盖率和改进建议
示例
生成单元测试:
/test-generator src/main/utils/ipc-error-handler.js
指定框架和Mock风格:
/test-generator src/main/llm/session-manager.js --framework vitest --mock-style spy
分析覆盖率并补充测试:
/test-generator src/main/rag/bm25-search.js --coverage