dsh-test-runner:DSH 的结构化测试运行插件

前言

在 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 依赖时,映射为 vitestjest
  • package.jsonscripts.test 时,映射为 npm-test
  • 存在 pyproject.tomlpytest.iniconftest.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 testcargo 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
羽毛球分组比赛记分
小程序二维码

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

小夜