测试脚手架技能Skill test-scaffolding

自动为源代码生成测试文件框架,支持TDD工作流程,包含TODO桩以供测试工程师填充。

测试 0 次安装 0 次浏览 更新于 3/3/2026

name: 测试脚手架技能 description: “通过源代码分析,使用语言适当的模板生成测试文件框架。”

测试脚手架技能

为源文件生成测试文件框架,支持TDD工作流程。框架包含TODO桩,测试工程师在执行过程中填充。

变量

变量 默认 描述
SOURCE_FILES [] 要为哪些源文件生成测试框架
TEST_FRAMEWORK auto 要使用的框架(从清单中自动检测)
OUTPUT_DIR tests/ 生成的测试文件放置位置
NAMING_CONVENTION language-default 测试文件命名模式
INCLUDE_FIXTURES true 生成固定桩
STUB_STYLE todo todo(TODO注释)或skip(跳过标记)

工作流程(必须)

  1. 检测堆栈:读取包清单(pyproject.tomlpackage.jsongo.modCargo.toml
  2. 识别框架:匹配测试依赖(pytest,vitest,jest,testing,cargo test)
  3. 分析源代码:从每个源文件中提取公共函数、类、方法
  4. 映射到测试:应用命名约定以确定测试文件路径
  5. 生成框架:使用语言模板,为每个可测试单元插入TODO桩
  6. 返回清单:包含生成文件、跳过文件和单元计数的JSON

支持的框架

语言 框架 检测
Python pytest, unittest pyproject.toml[tool.pytest]或deps中的pytest
TypeScript vitest, jest package.json → devDeps中的vitestjest
JavaScript vitest, jest package.json → devDeps中的vitestjest
Go testing go.mod → 内置测试包
Rust cargo test Cargo.toml → 内置测试框架
Dart flutter_test, test pubspec.yaml → dev_deps中的flutter_testtest

命名约定

语言 测试文件
Python src/auth/login.py tests/auth/test_login.py
TypeScript src/auth/login.ts src/auth/login.test.tstests/auth/login.test.ts
Go pkg/auth/login.go pkg/auth/login_test.go
Rust src/auth/login.rs 内联#[cfg(test)]模块
Dart lib/auth/login.dart test/auth/login_test.dart

源代码分析启发式

Python

  • 检测def function_name(,其中名称不以_开头
  • 检测class ClassName:用于公共类
  • 在类中提取方法签名
  • 跳过__init____str__等(双下划线方法)

TypeScript/JavaScript

  • 检测export functionexport constexport class
  • 检测export default function/class
  • 解析JSDoc/TSDoc以获取参数类型

Go

  • 检测导出函数(大写名称)
  • 检测结构上的导出方法
  • 检测导出类型

Rust

  • 检测pub fnpub structpub enum
  • 检测带有公共方法的impl

输出模式

{
  "format": "scaffold-manifest/v1",
  "generated_at": "<ISO-8601 UTC>",
  "framework": "pytest",
  "generated": [
    {
      "source": "src/auth/login.py",
      "test": "tests/auth/test_login.py",
      "units": ["login", "logout", "refresh_token"],
      "unit_count": 3
    }
  ],
  "skipped": [
    {
      "source": "src/auth/utils.py",
      "reason": "test file exists"
    }
  ],
  "total_units": 12
}

红旗(停止并验证)

  • 未找到包清单→提示用户输入框架
  • 源文件中没有公共函数→跳过并警告
  • 测试文件已存在→除非指定--force,否则跳过
  • 无法解析源文件→记录警告,继续其他文件

集成点

/ai-dev-kit:plan-phase集成

  • 被调用以自动填充Tests Owned Files
  • 使用impl任务中的Owned Artifacts作为源文件

/ai-dev-kit:execute-lane集成

  • 在测试工程师运行之前被调用
  • 提交的框架以chore(P{n}-{lane}): scaffold test files

test-engineer代理集成

  • 代理在框架中检测TODO标记
  • 填充测试实现
  • 完成后移除TODO标记

提供者说明

  • /ai-dev-kit:scaffold-tests被调用时使用此技能
  • 优先选择TODO风格的桩而不是跳过标记以提高可见性
  • 在测试组织中保留源文件结构
  • 根据检测到的框架包含适当的导入