测试驱动开发

9分钟前更新 1 00
测试驱动开发测试驱动开发
测试驱动开发

技能简介

该技能提供统一的测试驱动开发(TDD)工作流,支持从规格文件、任务文件或描述三种入口启动开发。核心遵循 RED → GREEN → REFACTOR 循环,强制先写测试后实现,并集成属性测试指导与覆盖率反馈机制。

业务背景

统一团队测试驱动开发规范,降低代码缺陷率。支持从需求规格、任务工单或口头描述三种入口快速启动开发,确保先写测试后实现,避免返工。内置覆盖率反馈与属性测试指导,帮助业务人员把控交付质量,减少技术债务积累。

落地案例:某功能迭代中,产品经理提供.spec.md规格文件(含Given/When/Then验收标准),开发团队直接解析生成测试桩,按RED→GREEN→REFACTOR循环推进:先编写失败测试明确边界条件,最小实现使测试通过,最后重构保持整洁。复杂校验逻辑启用proptest属性测试,最终输出HTML覆盖率报告与build.done事件,确保需求可追溯、质量可量化。

能做什么

  • 解析 .spec.md 文件的 Given/When/Then 验收标准,自动生成测试桩
  • 基于 .code-task.md 任务文件设计测试场景
  • 处理临时描述类需求,转化为可测试的用例
  • 发现仓库现有测试模式,保持代码风格一致
  • 指导何时使用 proptest 进行属性测试
  • 生成带覆盖率数据的完成事件

使用说明

  1. 安装依赖:无需额外安装,依赖项目已配置的 Rust 工具链。如需覆盖率报告,确保已安装 cargo-tarpaulin
    cargo install cargo-tarpaulin
  2. 选择输入模式:根据输入类型自动匹配 Mode A(规格文件)、Mode B(任务文件)或 Mode C(描述)
  3. 执行 TDD 循环
    RED:编写失败测试 → GREEN:最小实现通过测试 → REFACTOR:清理代码并保持测试通过
  4. 提交完成事件:运行 ralph emit "build.done" "tests: pass, coverage: pass (XX%)"

输入与输出

见下方输入与输出表格。

项目内容
输入.spec.md 规格文件、.code-task.md 任务文件、自然语言描述、目标 crate 路径
输出测试桩代码、通过的测试套件、覆盖率报告、build.done 完成事件
适用人群Rust 开发者、规格驱动项目团队、多 crate 代码库维护者
不包含非 Rust 语言支持、自动实现代码生成、CI/CD 配置

 

风险提示

  • 禁止先写实现再补测试
  • 避免生成无需实现即可通过的虚假测试
  • 跨 crate 复制测试时需适配本地模式
  • proptest 仅用于纯函数且输入空间复杂场景
  • 无覆盖率数据时需说明原因并提供针对性测试证据

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/paulpete/test-driven-development/SKILL.md
来源类型:anthropic-skill

数据统计

相关导航

暂无评论

none
暂无评论...