dsh-tdd-guard:DSH 下的提交前测试门禁

前言

在 DeepSeek Harness(DSH)里做项目时,智能体或开发者常会改完代码就提交,本地是否跑过测试全凭习惯。单靠口头约定「先测再 commit」很难在 Git 层落地;而在编辑器里强制「先写测试再写实现」又是另一类工具的职责。若你希望在 commit 这一刻 用项目自带的 npm test 做一道硬门槛,同时可选地安装带标记的 pre-commit hook,社区插件 dsh-tdd-guard(维护者 lengrufeng2008,分类:工作流)提供的是轻量 test-before-commit 守卫,而不是原版 TDD Guard 的编辑期 enforcement。

这是什么

dsh-tdd-guard 在 DSH 中运行项目测试脚本,并可选择安装 opt-in 的 .git/hooks/pre-commit。README 明确说明:它受 nizos/tdd-guard 启发,但未复制其源码(详见仓库 NOTICE.md)。许可证为 MIT;package.json 中版本为 0.1.0,要求 Node >= 20。

社区目录页:https://www.skillhub.cn/plugins/lengrufeng2008/dsh-tdd-guard(独立站点,与 DeepSeek / 幻方无官方从属关系)。源码:https://github.com/lengrufeng2008/dsh-tdd-guard。

核心功能

下面只列 README 与 package.json 中已写明的行为。

提交门禁

  • 受管理的 hook 会执行 npm test;退出码非零则 阻止 commit。
  • check:返回通过/失败,并附带最近约 20 KB 输出;超时 120 s(工具侧 150 s)。
  • status:查看当前守卫/hook 相关状态(与 --root 指向的项目根目录配合)。

Hook 的安装与卸载

  • install --root .:安装带 dsh-tdd-guard 标记 的 hook;若已有未标记的 hook,默认 拒绝覆盖,除非传入 --force。
  • uninstall --root .:仅移除带有上述标记的 hook,避免误删手工编写的 hook。

在 DSH 会话中使用

在 DSH 里可对当前项目使用自然语言指令(README 原文):

Use tdd_check on this project.

插件通过 DSH 的 bundle 配置(plugin/cordis.patch.yml)接入;具体以仓库内插件入口 plugin/index.js 为准。

它保证什么、不保证什么

保证

  • commit 前由 hook 跑 npm test,失败则无法提交。
  • 安装/卸载行为受标记与 --force 规则约束,降低误覆盖风险。

不保证

  • 不能证明「测试一定写在代码之前」——那是原版 TDD Guard 类工具的任务;本插件只是 commit gate。
  • 执行的是 项目脚本,请在可信 checkout 上使用。
  • 无覆盖率、变异测试、LLM 评判或跨语言测试探测。
  • Git hook 面向 POSIX 取向环境;Windows 行为可能不一致。
  • 测试通过是证据,不是正确性证明。

命令行用法

在插件仓库或已安装包内,对目标项目根目录执行(README 原文):

node bin/dsh-tdd-guard.mjs status --root .
node bin/dsh-tdd-guard.mjs check --root .
node bin/dsh-tdd-guard.mjs install --root .
node bin/dsh-tdd-guard.mjs uninstall --root .

也可通过 npm 包暴露的 bin 名 dsh-tdd-guard 调用(见 package.json 的 bin 字段)。

典型流程可以是:先用 check 在 CI 或本地确认测试与输出,确认无误后再 install 启用 pre-commit;换机器或不再需要门禁时用 uninstall 清理。

插件自身测试(仓库内):

npm test

安装与启用

已抓取资料中 未给出 dsh plugin add … 一类固定安装命令,请勿凭插件名自行拼接。建议从社区目录页 lengrufeng2008/dsh-tdd-guard 查看当前 DSH 安装说明,或按 DSH「一切皆插件」的常规方式从 GitHub 仓库引入;启用 hook 前请阅读源码与 MIT 许可证。

安装 hook 前确认项目根目录的 package.json 里 scripts.test 指向你期望的命令(本守卫固定调用 npm test)。

适用场景与注意

适合:已在 Node 项目中用 npm test 作为统一测试入口的团队或个人;希望在 Git commit 前自动挡掉未过测的变更;在 DSH 工作流里用 tdd_check 让智能体先跑检查再讨论提交。

注意:

  • 插件以 当前 DSH 进程权限 运行,会执行项目脚本;安装前应检查仓库源码、依赖与许可证。
  • 与「测试驱动开发」的 编写顺序 无强制关系,命名中的 TDD 更多指 commit 前的测试门禁。
  • 需要编辑期 test-first 约束时,应选用其他工具(如 README 所指的 original TDD Guard 方向),而非本插件。

结尾

dsh-tdd-guard 把「提交前跑一遍 npm test」做成可管理的 Git hook 与 DSH 可调用检查,边界清晰:commit gate,而非编辑期 TDD 警察。需要详情与更新时,请查阅目录页 https://www.skillhub.cn/plugins/lengrufeng2008/dsh-tdd-guard 与 GitHub https://github.com/lengrufeng2008/dsh-tdd-guard。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜