用途
TDD Guide 是一个面向测试驱动开发的技能,帮助开发者生成测试、分析测试覆盖率,并按照红-绿-重构(RED-GREEN-REFACTOR)循环推进开发流程。它支持 Jest、Pytest、JUnit、Vitest、Mocha 等测试框架。
主要能力
- 测试生成:将需求或代码转换为结构规范的测试用例。
- 覆盖率分析:解析 LCOV/JSON/XML 报告,识别覆盖缺口并按优先级排序修复。
- TDD 工作流:引导红-绿-重构循环并进行验证。
- 框架适配:为 Jest、Pytest、JUnit、Vitest、Mocha 生成测试。
- 质量评分:评估测试隔离性、断言、命名,检测测试坏味道。
- Fixture 生成:创建真实的测试数据、Mock 和工厂。
使用方式
该技能通过一组 Python 脚本在命令行中调用:
test_generator.py:从代码或需求生成测试用例。用法:python scripts/test_generator.py --input source.py --framework pytestcoverage_analyzer.py:解析并分析覆盖率报告。用法:python scripts/coverage_analyzer.py --report lcov.info --threshold 80tdd_workflow.py:引导红-绿-重构循环。用法:python scripts/tdd_workflow.py --phase red --test test_auth.pyframework_adapter.py:在框架之间转换测试。用法:python scripts/framework_adapter.py --from jest --to pytestfixture_generator.py:生成测试数据和 Mock。用法:python scripts/fixture_generator.py --entity User --count 5metrics_calculator.py:计算测试质量指标。用法:python scripts/metrics_calculator.py --tests tests/format_detector.py:检测语言和框架。用法:python scripts/format_detector.py --file source.tsoutput_formatter.py:为 CLI/桌面/CI 格式化输出。用法:python scripts/output_formatter.py --format markdown
典型工作流
从代码生成测试:提供源代码(TypeScript、JavaScript、Python、Java),指定目标框架(Jest、Pytest、JUnit、Vitest),运行 test_generator.py 并附带需求,审查生成的测试桩。验证标准:测试可编译并覆盖正常路径、错误情况和边界情况。
分析覆盖率缺口:从测试运行器生成覆盖率报告(如 npm test -- --coverage),对 LCOV/JSON/XML 报告运行 coverage_analyzer.py,审查按优先级排序的缺口(P0/P1/P2),为未覆盖路径生成缺失的测试。验证标准:覆盖率达到目标阈值(通常 80% 以上)。
TDD 新功能:先写失败的测试(RED),运行 tdd_workflow.py --phase red 验证;实现最小代码使其通过(GREEN),运行 tdd_workflow.py --phase green 验证;在保持测试通过的前提下重构(REFACTOR)。验证标准:每个循环后所有测试均通过。
输入要求
- 测试生成:源代码(文件路径或粘贴内容)、目标框架(Jest、Pytest、JUnit、Vitest)、覆盖范围(单元、集成、边界情况)。
- 覆盖率分析:覆盖率报告文件(LCOV、JSON 或 XML 格式);可选:源代码作为上下文;可选:目标阈值百分比。
- TDD 工作流:功能需求或用户故事、当前阶段(RED、GREEN、REFACTOR)、测试代码和实现状态。
适用场景
适合单元测试的生成、覆盖率分析与 TDD 流程引导,尤其适用于 TypeScript、JavaScript、Python、Java 项目。
限制
- 单元测试为主:集成测试和端到端测试需要不同的模式。
- 静态分析:无法执行测试或测量运行时行为。
- 语言支持:最适合 TypeScript、JavaScript、Python、Java。
- 报告格式:仅支持 LCOV、JSON、XML;其他格式需要转换。
- 生成的测试:提供脚手架,复杂逻辑仍需人工审查。
以下场景应使用其他工具:端到端测试(Playwright、Cypress、Selenium)、性能测试(k6、JMeter、Locust)、安全测试(OWASP ZAP、Burp Suite)。