TestGen 是一个 AI 测试生成技能,用于为代码自动生成测试。它会根据目标文件、函数或目录,自动检测项目所用的测试框架,读取项目既有规范,并按语言类型路由到带技能预加载的通用生成器,最终产出符合项目约定的测试文件,并自动创建验证任务。
【用途】 TestGen 用于生成测试代码。它可以针对单个文件、指定函数或整个目录生成测试,避免重复已有测试,并可遵循项目的测试文件命名与存放约定。
【主要能力】
- 目标分析:判断目标是文件还是目录,提取函数签名,查找已有测试以避免重复。
- 框架检测:并行检测项目使用的测试框架,包括 JavaScript/TypeScript 的 jest/vitest/mocha/cypress/playwright、Python 的 pytest/unittest、Go 的 go test、Rust 的 cargo test、PHP 的 phpunit/pest 等。
- 项目规范加载:读取 AGENTS.md、CLAUDE.md 等项目约定,以及现有测试文件结构和命名规则(如 *.test.ts 与 *.spec.ts),并参考 jest.config、vitest.config、pytest.ini、pyproject.toml 等测试配置文件。
- 技能预加载路由:根据文件类型将任务分派给 general-purpose 子代理,并预加载对应技能,例如 .ts 预加载 typescript-ops,.tsx/.jsx 预加载 react-ops 与 typescript-ops,.vue 预加载 vue-ops 与 typescript-ops,.py 预加载 python-pytest-ops,.go 预加载 go-ops,.rs 预加载 rust-ops,.php 预加载 laravel-ops,Cypress 预加载 cypress-ops 与 typescript-ops,Playwright 预加载 playwright-ops 与 typescript-ops,Shell/bash 预加载 bash-ops。--visual 会调用 Chrome DevTools MCP。多文件会并行分派通用子代理。
- 测试生成:在正确位置创建测试文件,遵循检测到的约定,并包含正常路径、边界情况和错误处理。
- 集成:自动创建 TaskCreate 任务用于验证,并建议运行测试、/review、/save 等后续操作。
【使用方式】 命令形式为:testgen <target> [--type] [--focus] [--depth]。 --focus 可选值包括 happy(正常输入与预期输出)、edge(边界值、空输入、null)、error(无效输入、异常、错误处理)、all(以上全部,默认)。 --depth 可选值包括 quick(仅正常路径,每个函数 1-2 个测试)、normal(正常路径 + 常见边界情况,默认)、thorough(覆盖所有路径、mock、异步等全面测试)。 --visual 用于视觉测试,调用 Chrome DevTools MCP。
【适用场景】 适用于需要为现有代码补充测试的项目,尤其适合多语言、多框架的代码库,能够按项目约定生成测试文件,减少手工编写测试的工作量。
【限制】 资料未提供关于收费、价格、平台兼容性、生成效果保证等方面的信息。部分功能依赖外部 CLI 工具(如 jq、rg、ast-grep、fd、Chrome DevTools MCP),缺少时会按降级策略回退到内置工具或替代方案。具体框架支持细节和代码示例可参考 frameworks.md 和 visual-testing.md。