前言¶
在 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