DSH Plugins
返回列表
🧩

dsh-protect-tests

admin-security 更新于 2026.10.18

在终端中运行以下命令:

dsh plugin install acus9345/dsh-protect-tests

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在 DeepSeek Harness 中运行 dsh plugin install acus9345/dsh-protect-tests 安装本插件;源码仓库为 https://github.com/acus9345/dsh-protect-tests。

插件介绍

让智能体把测试跑绿时,常见做法不是修代码,而是给失败用例加 skip、注释断言,或把精确断言换成几乎不会失败的写法。表面全绿,缺陷仍在。dsh-protect-tests 在测试相关文件的编辑落地前对比新旧文本:若变更会削弱检测,就拒绝并明确告诉模型它试图做了什么。

插件靠可识别的模式工作,而非理解测试语义。它能拦住新增 skip 或 only、一次删掉多个断言或整段用例、恒真断言、注释掉的检查、用空 catch 吞掉失败,以及把严格断言换成更弱等价物;也能识别通过 shell 删除测试文件,或把 package.json 里的 test 脚本改成永远成功。按文件名与目录规则识别测试文件,列表可配置。正常加测、加强断言、重命名和重构 setup 一般不受影响;把多条相似用例收成 parametrize 或 test.each 等合理合并也会放行。

当测试确实过时或断言的就是错误行为时,模型需说明改哪条、为什么,再重复同一操作确认后才会通过;也可设为 ask 模式由你亲自批准。它拦不住把期望值改错或重写逻辑让 bug 不再被覆盖这类语义层面的改动,但能挡住 README 所强调的大多数走捷径行为。适合在 DeepSeek Harness 里让智能体频繁改测试、又希望 diff 里少出现测过了却没测到的团队与个人。

使用场景

  • 让智能体修复失败测试时,防止其通过 skip 或弱化断言把套件刷绿
  • 在 Harness 中频繁让模型改 tests 或 spec 目录下的文件时,自动拒绝削弱检测的 diff
  • 测试确实需要删改时,要求模型说明原因并二次确认,避免正当修改被静默放行

适合人员

  • 使用 DeepSeek Harness 并让智能体编写或修改测试的开发者
  • 担心 AI 改测试时走捷径、导致 CI 假通过的技术负责人
  • 希望在自动化改码与测试可信度之间加一道轻量护栏的团队