搜索

PythonReactSEOPDF
GitHub Skill

test-scaffolding

Generate test file scaffolds from source analysis with language-appropriate templates.

aiskillstore☆ 123 仓库 Stars6 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

Test Scaffolding Skill

Generate test file scaffolds for source files, enabling TDD workflows. Scaffolds contain TODO stubs that the test-engineer agent fills during lane execution.

Variables

Variable Default Description
SOURCE_FILES [] List of source files to scaffold tests for
TEST_FRAMEWORK auto Framework to use (auto-detects from manifest)
OUTPUT_DIR tests/ Where to place generated test files
NAMING_CONVENTION language-default Test file naming pattern
INCLUDE_FIXTURES true Generate fixture stubs
STUB_STYLE todo todo (TODO comments) or skip (skip markers)

Workflow (Mandatory)

  1. Detect stack: Read package manifest (pyproject.toml, package.json, go.mod, Cargo.toml)
  2. Identify framework: Match test dependencies (pytest, vitest, jest, testing, cargo test)
  3. Analyze sources: Extract public functions, classes, methods from each source file
  4. Map to tests: Apply naming convention to determine test file paths
  5. Generate scaffolds: Use language template, insert TODO stubs for each testable unit
  6. Return manifest: JSON with generated files, skipped files, and unit counts

Supported Frameworks

Language Frameworks Detection
Python pytest, unittest pyproject.toml → [tool.pytest] or pytest in deps
TypeScript vitest, jest package.json → vitest or jest in devDeps
JavaScript vitest, jest package.json → vitest or jest in devDeps
Go testing go.mod → built-in testing package
Rust cargo test Cargo.toml → built-in test harness
Dart flutter_test, test pubspec.yaml → flutter_test or test in dev_deps

Naming Conventions

Language Source Test File
Python src/auth/login.py tests/auth/test_login.py
TypeScript src/auth/login.ts src/auth/login.test.ts or tests/auth/login.test.ts
Go pkg/auth/login.go pkg/auth/login_test.go
Rust src/auth/login.rs inline #[cfg(test)] module
Dart lib/auth/login.dart test/auth/login_test.dart

Source Analysis Heuristics

Python
  • Detect def function_name( where name doesn't start with _
  • Detect class ClassName: for public classes
  • Extract method signatures within classes
  • Skip __init__, __str__, etc. (dunder methods)
TypeScript/JavaScript
  • Detect export function, export const, export class
  • Detect export default function/class
  • Parse JSDoc/TSDoc for parameter types
Go
  • Detect exported functions (capitalized names)
  • Detect exported methods on structs
  • Detect exported types
Rust
  • Detect pub fn, pub struct, pub enum
  • Detect impl blocks with public methods

Output Schema

{
  "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
}

Red Flags (Stop & Verify)

  • No package manifest found → prompt user for framework
  • Source file has no public functions → skip with warning
  • Test file already exists → skip unless --force specified
  • Unable to parse source file → log warning, continue with others

Integration Points

With /ai-dev-kit:plan-phase
  • Called to auto-populate Tests Owned Files column
  • Uses Owned Artifacts from impl tasks as source files
With /ai-dev-kit:execute-lane
  • Called before test-engineer agent runs
  • Scaffolds committed with chore(P{n}-{lane}): scaffold test files
With test-engineer agent
  • Agent detects TODO markers in scaffolds
  • Fills in test implementations
  • Removes TODO markers when complete

Provider Notes

  • Use this skill when /ai-dev-kit:scaffold-tests is invoked
  • Prefer TODO-style stubs over skip markers for visibility
  • Preserve source file structure in test organization
  • Include proper imports based on detected framework

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-01-20
索引更新时间
2026-01-28
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!