SuperAPI AI 工具集

tdd-guide

测试与质量

查看项目

更新于 10-15 08:05

技能介绍

用途

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 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:生成测试数据和 Mock。用法: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

典型工作流

从代码生成测试:提供源代码(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)。