mcpField
T
test-first-discipline

test-first-discipline

github.com/fudesign2008测试与质量651 次安装1 天前更新
代码仓库

关于 test-first-discipline

test-first-discipline 是一项供开发工作流调用的内部技能,规定行为变更必须先观察到失败测试,再编写最少的生产代码。它明确了适用范围、例外及与事后测试覆盖检查技能的区别。

主要功能

  1. 01要求先编写并观察失败测试
  2. 02再实现最少的行为代码
  3. 03涵盖新功能、修复和行为重构
  4. 04明确例外及用户跳过规则
  5. 05区分事后测试覆盖检查

适用场景

  1. 01按失败测试优先顺序实现功能
  2. 02修复缺陷前验证测试确实失败
  3. 03将行为实现纪律纳入开发工作流

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fudesign2008/open-skills --skill test-first-discipline

安装后在 Claude Code 中输入/test-first-discipline确认已加载。

详细介绍

测试先行纪律

内部共享技能。先观察到测试失败的实现顺序的唯一事实来源。宿主在 dependencies 中声明此技能,并在缺失时中止——不得静默回退。

**名称说明:**有意不命名为 tdd 或 test-driven-development(外部技能仓库中的名称)。仅使用此名称。

铁律

未先观察到测试失败,绝不编写生产行为代码。

  1. 编写失败测试(或等效的自动化失败检查)。
  2. 运行它,并在当前会话中观察到失败。
  3. 编写通过测试所需的最少量生产代码。
  4. 重新运行;然后如有需要,在保持测试通过的同时重构。

如果在第 2 步之前编写了生产行为代码:删除它,并从失败测试重新开始。不要将其保留为“参考”,也不要“边写测试边调整”。

适用情况

**适用:**新功能、Bug 修复、影响行为的重构。

例外情况(除非用户另有要求):

  • 一次性原型
  • 生成的代码
  • 不涉及待测行为的纯配置
  • 纯文档
  • 用户明确要求跳过,并简要记录理由

没有适用的例外或用户明确要求跳过,却以“这次就跳过”为由自圆其说,是不允许的。

与 test-suite-ensure 的区别

技能职责
test-first-discipline顺序——生产行为代码之前先出现失败
test-suite-ensure事后处理——检测技术栈、搭建脚手架,为现有逻辑生成和运行覆盖率

不得将 test-suite-ensure 运行通过报告为符合本技能要求。同时使用两者的宿主:实现行为时遵循测试先行;之后调用 test-suite-ensure 来处理缺口或搭建脚手架(按宿主要求,可为建议性或强制性)。

禁止事项

  • 仅在事后运行 test-suite-ensure 后声称符合测试先行要求
  • 在本仓库中将此技能重命名为 tdd / test-driven-development 或为其创建别名
  • 对常规行为变更跳过经观察确认失败的步骤,且没有适用的例外或用户明确要求跳过

集成指南

  • 宿主:在执行阶段添加一行指引——行为变更时加载此技能;将 test-suite-ensure 保留为独立的任务后确保步骤。
  • 优先使用 user-invocable: false;用户通过 PDCA 宿主调用此技能。
  • 与 completion-evidence-discipline 配合:声称测试红/绿时,观察到的失败运行(以及之后的通过运行)必须是新鲜证据。

评论

支持 Markdown