Generate Unit Test

***

ascend 75a7d8a 2.5 KB Updated

File contents


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 一个测试断言过多行为 为了覆盖率数字编写无价值测试

ascend/agent-skills/tree/main/skills/mindspeed-llm-auto-ut-skills/skills/generate-unit-test commit 75a7d8a3c9

Frequently asked questions

npx skillmds@latest add ascend/generate-unit-test