ClawSkills logoClawSkills

Tdd Guide

包含测试生成、覆盖率分析和多框架支持的测试驱动开发工作流

介绍

# TDD Guide

适用于生成测试、分析覆盖率以及指导 Jest、Pytest、JUnit 和 Vitest 中红-绿-重构工作流的测试驱动开发技能。

## 目录

- [功能](#capabilities) - [工作流](#workflows) - [工具](#tools) - [输入要求](#input-requirements) - [局限性](#limitations)

---

## 功能

| 功能 | 描述 | |------------|-------------| | 测试生成 | 将需求或代码转换为结构合理的测试用例 | | 覆盖率分析 | 解析 LCOV/JSON/XML 报告,识别缺口,确定修复优先级 | | TDD 工作流 | 指导包含验证的红-绿-重构循环 | | 框架适配器 | 为 Jest、Pytest、JUnit、Vitest、Mocha 生成测试 | | 质量评分 | 评估测试隔离性、断言、命名,检测测试坏味道 | | Fixture 生成 | 创建真实的测试数据、模拟和工厂 |

---

## 工作流

### 从代码生成测试

1. 提供源代码(TypeScript、JavaScript、Python、Java) 2. 指定目标框架(Jest、Pytest、JUnit、Vitest) 3. 根据需求运行 `test_generator.py` 4. 审查生成的测试存根 5. **验证:** 测试能够编译并覆盖正常路径、错误情况和边界情况

### 分析覆盖率缺口

1. 从测试运行器生成覆盖率报告(`npm test -- --coverage`) 2. 在 LCOV/JSON/XML 报告上运行 `coverage_analyzer.py` 3. 审查按优先级排序的缺口(P0/P1/P2) 4. 为未覆盖的路径生成缺失的测试 5. **验证:** 覆盖率满足目标阈值(通常为 80%+)

### TDD 新功能

1. 先编写失败的测试(RED) 2. 运行 `tdd_workflow.py --phase red` 进行验证 3. 实现通过测试的最小代码(GREEN) 4. 运行 `tdd_workflow.py --phase green` 进行验证 5. 在保持测试绿色的同时进行重构(REFACTOR) 6. **验证:** 每个循环后所有测试均通过

---

## 工具

| 工具 | 用途 | 使用方法 | |------|---------|-------| | `test_generator.py` | 根据代码/需求生成测试用例 | `python scripts/test_generator.py --input source.py --framework pytest` | | `coverage_analyzer.py` | 解析和分析覆盖率报告 | `python scripts/coverage_analyzer.py --report lcov.info --threshold 80` | | `tdd_workflow.py` | 指导红-绿-重构循环 | `python scripts/tdd_workflow.py --phase red --test test_auth.py` | | `framework_adapter.py` | 在框架之间转换测试 | `python scripts/framework_adapter.py --from jest --to pytest` | | `fixture_generator.py` | 生成测试数据和模拟 | `python scripts/fixture_generator.py --entity User --count 5` | | `metrics_calculator.py` | 计算测试质量指标 | `python scripts/metrics_calculator.py --tests tests/` | | `format_detector.py` | 检测语言和框架 | `python scripts/format_detector.py --file source.ts` | | `output_formatter.py` | 为 CLI/桌面/CI 格式化输出 | `python scripts/output_formatter.py --format markdown` |

---

## 输入要求

**用于测试生成:** - 源代码(文件路径或粘贴的内容) - 目标框架(Jest、Pytest、JUnit、Vitest) - 覆盖范围(单元、集成、边界情况)

**用于覆盖率分析:** - 覆盖率报告文件(LCOV、JSON 或 XML 格式) - 可选:用于上下文的源代码 - 可选:目标阈值百分比

**用于 TDD 工作流:** - 功能需求或用户故事 - 当前阶段(RED、GREEN、REFACTOR) - 测试代码和实现状态

---

## 局限性

| 范围 | 详情 | |-------|---------| | 侧重单元测试 | 集成测试和 E2E 测试需要不同的模式 | | 静态分析 | 无法执行测试或测量运行时行为 | | 语言支持 | 最适用于 TypeScript、JavaScript、Python、Java | | 报告格式 | 仅支持 LCOV、JSON、XML;其他格式需要转换 | | 生成的测试 | 提供脚手架;复杂逻辑需要人工审查 |

**何时使用其他工具:** - E2E 测试:Playwright、Cypress、Selenium - 性能测试:k6、JMeter、Locust - 安全测试:OWASP ZAP、Burp Suite

更多产品