DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Test Runner — DeepSeek Harness 插件(DSH Plugin)
← Plugins
T

dsh-test-runner

Test Runner

DSH 插件:结构化测试运行器工具(test_run)——自动检测 vitest/jest/pytest/node:test,运行测试,并为模型解析失败摘要。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:suimi8/dsh-test-runner#89f89ed8d50c94c73adb7d818988cdab74c5acde
README兼容性版本

兼容性与来源证明

Test Runner 以 dsh-test-runner 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/21

版本

0.1.0stable
2026/8/21

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序

README

dsh-test-runner

DeepSeek Harness 插件:结构化测试运行工具 test_run。

让 agent 用一次工具调用完成「改代码 → 跑测试 → 修」闭环:自动探测测试框架、执行测试、只返回结构化摘要(通过/失败统计 + 失败用例名称与错误信息 + 输出尾部),避免模型阅读整段原始测试输出(省 token、少一轮)。

功能

能力说明
框架自动探测package.json 的 vitest/jest 依赖 → vitest/jest;scripts.test → npm-test;pyproject.toml/pytest.ini/conftest.py → pytest;test/ 目录或 *.test.* 文件 → node(node:test)
目标过滤target 指定文件/目录/用例模式(如 tests/test_api.py::test_login),多个目标空格分隔
失败摘要每个失败用例提取名称 + 错误信息(vitest ×/→、jest ●、pytest FAILED、node:test TAP not ok + error: 块)
只重跑失败last_failed → vitest --lastFailed / jest --onlyFailures / pytest --lf
自定义命令command 完全覆盖默认命令(如 pnpm vitest run、python -m pytest -x -q)
超时与取消timeout_ms 默认 120s;工具取消信号转发给子进程
沙箱合规按调用会话解析 sandboxPolicy(会话覆盖 > 部署默认),与 bash 工具同一策略

安装

dsh plugin --profile web add ./dsh-test-runner        # 本地目录
# 或从 GitHub(需要 prepare 脚本 + allowBuilds 放行)
dsh plugin --profile web add github:you/dsh-test-runner

重启 dsh --profile web 后生效。管理面板:设置 → 插件。

使用示例

模型侧直接调用:

  • test_run(自动探测,跑全部)
  • test_run(target="src/utils.test.ts")(跑单文件)
  • test_run(framework="pytest", target="tests/test_api.py::test_login")
  • test_run(last_failed=true)(只重跑上次失败)
  • test_run(command="pnpm vitest run --coverage")

返回结构:

{
  "ok": false,
  "framework": "node",
  "command": "node --test",
  "exitCode": 1,
  "durationMs": 800,
  "summary": { "total": 6, "passed": 5, "failed": 1, "skipped": 0 },
  "failures": [
    { "name": "string: broken case (intentional failure)",
      "message": "Expected values to be strictly equal: | 'WORLD' !== 'WRLD' | ..." }
  ],
  "outputTail": "<原始输出尾部 3000 字符>"
}

兼容性

  • DSH mainline 持续快速演进,本插件只依赖 shell / fs / sandboxPolicy 三个稳定服务 seam 与 ctx.tools 注册接口。
  • 验证日期:2026-08(Windows + PowerShell 执行器 + node:test 实测)。
  • 退化安全:解析器匹配不到失败摘要时不崩溃,退化为 exitCode + 输出尾部——最坏不比直接用 bash 跑测试差。

规范合规

对照官方开发文档(docs/user/develop/basic/tool.md、docs/cookbook/adding-a-tool.md、docs/user/develop/framework/index.md、docs/user/develop/practice/index.md)逐条核验:

execute 契约

规范要求状态实现位置
args 由 defineTool 校验;手检非空/正数✅timeout_ms 正数校验(参考 bash validateArgs)
返回单一 canonical JSON value✅execute 返回纯 object,不含 content blocks
infra 失败 throw;domain 结果正常返回✅shell resolve/run 失败 throw;测试失败(exit≠0) 正常返回 value
Honor exec.signal✅传给 shell.resolve({ signal: exec.signal })
output.schema 声明规范值✅{ type: 'json' },render 与 presentationMeta 派生自 value

UI 卡片(硬规则)

规范要求状态实现位置
presentCall/presentResult 纯函数(无 I/O、无 session state、无 clock/random)✅只读 args / result.meta
UI 格式不进 canonical value✅value 为纯结构化 JSON;卡片格式在 presentResult
terminal 卡片 title 是命令✅已知 framework 时 buildCommand 重建真实命令;auto 退回 generic 卡片(不伪造命令)
presentResult 返回 undefined 做 generic 兜底✅isError 或无 meta 时返回 undefined
presentationMeta 派生 replayable JSON✅{ exitCode, timedOut, outputText } 从 value 派生

生命周期与依赖

规范要求状态实现位置
注册 effect-based,fiber 卸载自动注销✅ctx.tools.register(defineTool(...))
副作用可逆✅无自定义资源需手动清理(shell/fs 为共享服务)
硬依赖 inject;可选服务 ctx.get + undefined 检查✅inject: ['tools'];shell/fs/sandboxPolicy 用 ctx.get 检查
isConcurrencySafe 声明✅() => false(测试改状态,独占执行)

能力分层与配置

规范要求状态说明
不过早拆分 Service Definition/Provider/Consumer✅单包工具,未拆(practice 明确说 simple tool 不拆)
可调值进 Config Schema✅无部署间可调值(框架/命令由模型参数传入)

打包

规范要求状态实现位置
bundle 声明 dsh.bundle.patch✅package.json
cordis.patch.yml 按包名引用✅name: dsh-test-runner
语法校验✅node --check 通过

已知边界(诚实声明)

  • 解析器正则匹配当前主流版本的默认 reporter 输出;框架升级改格式 → 退化安全(不崩,返回 exitCode + 尾部)。
  • 已验证:vitest/jest/pytest/node:test 默认输出;go test / cargo test 等未覆盖,退化为原始输出。
  • 仅在 Windows + PowerShell 执行器实测;命令本身跨方言(npx/python/node),bash 下理论可行但未验证。

开发

# 本地覆盖层开发
pnpm dsh web --patch ./cordis.patch.yml

License

MIT