Claude Code 写代码总跳过测试?这个 TDD 强制插件把 Agent 关回红绿循环
让 AI 写代码这件事,最大的坑从来不是”它写不出来”,而是”它太快了”。
你说”加个用户登录”,Claude Code 噼里啪啦给你写完 controller、service、路由,等你跑测试才发现——根本没人要求它先写测试。这就是 TDD 流程被绕过的经典现场。
为什么需要 TDD Guard
我们团队去年推 Claude Code 的时候,遇到过一模一样的痛:Agent 太好说话了,只要你说”实现 XX”,它就直奔 production code,红绿循环直接跳过。
知道问题在哪但拦不住——直到我看到 nizos/tdd-guard 这个插件。GitHub 2k ⭐,专门给 Claude Code 做 TDD 强制执行:Agent 写代码前,会被 Hook 拦下来,问一句”测试呢?”
它具体干什么
- Test-First Enforcement:没失败测试就不准写实现代码,硬规则
- Minimal Implementation:别多写,当前测试只需要什么就写什么,防止过度实现
- Lint 集成:重构阶段强制走 lint,顺手把”改完测试还跑不过”的问题挡住
- 可配置规则:你团队怎么写 TDD,插件就能怎么校验
- 可切换验证模型:快和准可以二选一
- Session 级开关:聊到一半想关掉写点 demo 代码?一键关,不用改配置
安装两行命令搞定
Claude Code 里跑:
/plugin marketplace add nizos/tdd-guard
/plugin install tdd-guard@tdd-guard
/tdd-guard:setup
setup 会自动识别你的测试框架——目前已经支持 Vitest、Jest、pytest、PHPUnit、Go、Rust/cargo、Storybook、RSpec、Minitest,基本覆盖主流后端栈。Python、PHP、Rust、Go、Ruby 都有专门的 contributor 维护,不是单人项目。
实测体验
装完之后,你让 Claude “实现一个购物车结算接口”,它会先问”测试用例长什么样?”,你写完测试跑出红色,它才开始动 production code。中途想偷懒多写点?Hook 直接拒绝,告诉你”测试还没要求这个”。
这种约束对个人开发者可能有点烦,但放在团队里就是护城河——你再也不用 review 时反复问”为什么这块没测试”。
顺便一提,作者已经把项目演进成 Probity,支持 Claude Code、Codex、GitHub Copilot CLI,新项目建议直接去那边;老项目继续用 tdd-guard 也行,还在维护。
做严肃工程项目的开发者,这个插件值得放进工具箱。
评论区
登录后可评论。