返回顶部
t

tdd-guideTDD开发指南

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
安全检测
已通过
3,560
下载量
免费
免费
4
收藏
概述
安装方式
版本历史

tdd-guide

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

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部