闲社服务运行正常AI智能体自动化平台
t

TDD开发指南

技能标识:tdd-guide

Test-driven development skill for writing unit tests, generating test fixtures and mocks, analyzing coverage gaps, and guiding red-green-refactor workflows across Jest, Pytest, JUnit, Vitest, and Mocha. Use when the user asks to write tests, improve test coverage, practice TDD, generate mocks or stubs, or mentions testing frameworks like Jest, pytest, or JUnit. Handles test generation from source code, coverage report parsing (LCOV/JSON/XML), quality scoring, and framework conversion for TypeScr

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 2.1.1
检测标记
后台标记通过
免费
免费获取
4
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

TDD开发指南

TDD 指南

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



工作流

从代码生成测试

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

分析覆盖率缺口

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

TDD 新功能

  1. 1. 先编写失败的测试(RED)
  2. 运行 tddworkflow.py --phase red 进行验证
  3. 实现最简代码以通过测试(GREEN)
  4. 运行 tddworkflow.py --phase green 进行验证
  5. 在保持测试通过的前提下重构(REFACTOR)
  6. 验证: 每个周期后所有测试均通过

示例

测试生成 — 输入 → 输出(Pytest)

输入源函数(math_utils.py):
python
def divide(a: float, b: float) -> float:
if b == 0:
raise ValueError(Cannot divide by zero)
return a / b

命令:
bash
python scripts/testgenerator.py --input mathutils.py --framework pytest

生成的测试输出(testmathutils.py):
python
import pytest
from math_utils import divide

class TestDivide:
def testdividepositive_numbers(self):
assert divide(10, 2) == 5.0

def testdividenegative_numerator(self):
assert divide(-10, 2) == -5.0

def testdividefloat_result(self):
assert divide(1, 3) == pytest.approx(0.333, rel=1e-3)

def testdividebyzeroraisesvalueerror(self):
with pytest.raises(ValueError, match=Cannot divide by zero):
divide(10, 0)

def testdividezero_numerator(self):
assert divide(0, 5) == 0.0



覆盖率分析 — 示例 P0/P1/P2 输出

命令:
bash
python scripts/coverage_analyzer.py --report lcov.info --threshold 80

示例输出:

覆盖率报告 — 总体:63%(阈值:80%)

P0 — 关键缺口(未覆盖的错误路径):
auth/login.py:42-58 handleexpiredtoken() 覆盖率 0%
payments/process.py:91-110 handlepaymentfailure() 覆盖率 0%

P1 — 高价值缺口(核心逻辑分支):
users/service.py:77 update_profile() — else 分支 覆盖率 0%
orders/cart.py:134 apply_discount() — 零数量守卫 覆盖率 0%

P2 — 低风险缺口(工具/辅助函数):
utils/formatting.py:12 format_currency() 覆盖率 0%

建议:优先为 P0 项生成测试,以达到 80% 的阈值。



关键工具


工具用途用法
testgenerator.py从代码/需求生成测试用例python scripts/testgenerator.py --input source.py --framework pytest
coverageanalyzer.py
解析和分析覆盖率报告 | python scripts/coverageanalyzer.py --report lcov.info --threshold 80 |
| tddworkflow.py | 指导红-绿-重构周期 | python scripts/tddworkflow.py --phase red --test test_auth.py |
| fixturegenerator.py | 生成测试数据和模拟对象 | python scripts/fixturegenerator.py --entity User --count 5 |

其他脚本:frameworkadapter.py(在框架间转换)、metricscalculator.py(质量指标)、formatdetector.py(检测语言/框架)、outputformatter.py(CLI/桌面/CI 输出)。



输入要求

对于测试生成:

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

对于覆盖率分析:

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

对于 TDD 工作流:

  • - 功能需求或用户故事
  • 当前阶段(RED、GREEN、REFACTOR)
  • 测试代码和实现状态



限制


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

何时使用其他工具:

  • - 端到端测试:Playwright、Cypress、Selenium
  • 性能测试:k6、JMeter、Locust
  • 安全测试:OWASP ZAP、Burp Suite

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 tdd-guide-1776349663 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 tdd-guide-1776349663 技能

通过命令行安装

skillhub install tdd-guide-1776349663

下载

⬇ 下载 tdd-guide v2.1.1(免费)

文件大小: 47.54 KB | 发布时间: 2026-4-17 14:21

v2.1.1 最新 2026-4-17 14:21
v2.1.1: optimization, reference splits
返回顶部