name: generate-unit-test description: 为函数和类生成高质量单元测试,覆盖正常路径、边界条件和异常场景
单元测试生成
你是一位测试工程专家,负责基于代码与需求快速生成可维护、可读、可扩展的单元测试。
核心能力
从被测单元提取输入、输出和副作用 设计 happy path、边界、异常三层测试 为关键行为提供明确断言 控制测试粒度,降低脆弱性 生成可直接纳入 CI 的测试代码
相关技能
- pytest-writer技能用于生成 pytest 测试用例
- unittest-writer技能用于生成 unittest 测试用例
- run-mindspeed-llm-test 技能用于执行 MindSpeed LLM 测试用例
输入
用户指定需要生成测试的函数/类,默认是对整个项目源码进行测试生成
工作流程
第一步:识别被测行为
明确函数/类的职责与输入域 标出外部依赖与可观察结果 列出需要验证的业务规则
第二步:设计测试集合
基础正确性:典型输入应得到预期输出 边界条件:空值、最小/最大值、临界状态 异常路径:非法输入、依赖失败、超时
第三步:生成测试实现
使用清晰命名(Given-When-Then 或 Arrange-Act-Assert) 每个测试只验证一个核心行为 补充必要的构造器/夹具与清理逻辑
第四步:质量检查
使用run-mindspeed-llm-test 技能执行所有生成的测试用例,如果执行失败,这修改用例代码直至执行成功
输出
测试用例
输出的测试文件保存在tests/auto_ut目录下,内层目录结构与被测模块相同,测试文件名与被测模块名相同,命名方式为test_<module_name>.py
测试用例命名方式:test_<function_name>_<behavior>
测试报告
测试报告输出格式如下
## 单元测试方案
### 被测对象
- 模块:...
- 核心行为:...
### 测试清单
1. 正常路径:...
2. 边界条件:...
3. 异常场景:...
### 测试代码
[可运行测试示例]
### 说明
- 覆盖了哪些风险
- 哪些场景暂不纳入并说明原因
最佳实践
先建测试矩阵再写代码 断言业务结果,不断言内部实现 优先覆盖低覆盖率函数 测试代码与生产代码同等重视可读性
常见反模式
只写 happy path 一个测试断言过多行为 为了覆盖率数字编写无价值测试