前言¶
在 DSH 的智能体流程里,常见动作是“改代码 → 跑测试 → 根据失败结果修复”。如果直接让 agent 用 bash 跑测试,模型会读到整段终端输出,失败用例和错误信息容易被淹没,既增加阅读成本,也更容易多跑一轮。
dsh-test-runner 解决的是这个具体问题:提供一个名为 test_run 的工具,自动探测常见测试框架,执行测试,并把失败摘要解析出来供模型使用。
下面介绍这个插件的功能、安装方式、典型用法和使用边界。
这是什么¶
dsh-test-runner 是一个 DSH 插件,核心工具是 test_run。它面向 vitest、jest、pytest 和 node:test 等测试框架,完成“探测框架 → 执行测试 → 解析失败摘要”的结构化流程。
许可证为 MIT。仓库地址为:
https://github.com/suimi8/dsh-test-runner
插件目录地址为:
https://www.skillhub.cn/plugins/suimi8/dsh-test-runner
README 与 package.json 未直接声明维护者,本文只把 suimi8 作为仓库和目录线索列出,不作为维护者事实展开。
核心功能¶
test_run 的能力围绕测试执行和失败信息抽取展开。
框架自动探测¶
插件按项目特征映射框架:
package.json中存在 vitest 或 jest 依赖时,映射为vitest或jest。package.json有scripts.test时,映射为npm-test。- 存在
pyproject.toml、pytest.ini或conftest.py时,映射为pytest。 - 存在
test/目录或*.test.*文件时,映射为node,对应 node:test。
目标过滤¶
target 用于指定文件、目录或用例模式。多个目标可以空格分隔。
失败摘要¶
测试失败时,插件提取失败用例名称与错误信息,减少模型阅读整段测试输出的成本。
只重跑失败¶
last_failed 用于只重跑上次失败用例,映射关系为:
- vitest:
--lastFailed - jest:
--onlyFailures - pytest:
--lf
自定义命令¶
command 可以覆盖默认命令,适合需要指定包管理器、覆盖率或特定参数的场景。
超时与取消¶
timeout_ms 默认 120s。工具取消信号会转发给子进程。
沙箱合规¶
插件按调用会话解析 sandboxPolicy,优先级为“会话覆盖 > 部署默认”,与 bash 工具使用同一策略。
安装与启用¶
先在本地准备插件目录,然后执行本地目录安装:
dsh plugin --profile web add ./dsh-test-runner
安装完成后,重启 dsh web 进程使插件生效:
dsh --profile web
可以在管理面板查看:设置 → 插件。
如果计划从 GitHub 安装,资料中注明需要 prepare 脚本和 allowBuilds 放行。已核材料中的 GitHub 安装命令为占位,未确认实际远程安装命令,因此本文不给出该命令。
典型用法¶
模型侧可以直接调用 test_run。下面几组调用覆盖常见场景。
自动探测框架并跑全部测试:
test_run
只跑单个文件:
test_run(target="src/utils.test.ts")
指定 pytest 框架和单个测试用例:
test_run(framework="pytest", target="tests/test_api.py::test_login")
只重跑上次失败用例:
test_run(last_failed=true)
用自定义命令覆盖默认执行命令:
test_run(command="pnpm vitest run --coverage")
适用场景与注意¶
这个插件适合在 DSH 流程里需要频繁跑 Node/JavaScript 或 Python 测试的 agent 场景,尤其是 vitest、jest、pytest、node:test 项目。
使用前建议注意以下边界:
- 验证日期为 2026-08,实测环境是 Windows + PowerShell 执行器 + node:test。
- bash 环境下理论可行,但资料中未验证。
go test、cargo test等未覆盖,会退化为原始输出。- 解析器匹配当前主流版本的默认 reporter 输出;框架升级后输出格式变化时,会退化为
exitCode + 输出尾部。 timeout_ms默认 120s,工具取消信号会转发给子进程。sandboxPolicy按调用会话解析,与 bash 工具同一策略。- 插件以当前 dsh 进程权限运行。安装前应检查源码、许可证和安装命令。许可证为 MIT。
结尾¶
dsh-test-runner 的价值比较集中:把“跑测试、读失败信息”从原始终端输出变成 test_run 一次调用可完成的结构化步骤,适合嵌入 DSH 的调试与修复流程。
它来自 DSH 插件生态的社区目录和仓库;该目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
插件目录:
https://www.skillhub.cn/plugins/suimi8/dsh-test-runner
GitHub:
https://github.com/suimi8/dsh-test-runner