在 DSH 中进行代码修改时,AI 代理往往需要在完成前获得一个明确的执行信号。Test Pilot 插件旨在解决这个问题。它通过观察成功的文件写入,并在后台运行相关测试,将测试结果反馈给代理,从而在同一个 DSH 轮次中提供自动化的边界测试反馈。
插件简介¶
该插件由 GooDAnDReaREADY 维护,核心价值在于实现“自动边界测试运行,带有持久化的最近结果”。它是一个验证器工具,而非自主修复代理。
核心功能¶
-
自动触发与运行
插件观察成功的文件写入结果,等待两秒的静默期以合并编辑,随后在后台通过 DSH 子进程服务运行测试。如果在同一轮次中可能完成,它会返回已完成的测试结果;如果轮次结束,它会刷新待处理的工作作为安全网。只读轮次不会启动测试进程。 -
测试匹配与执行
支持多种测试运行器和命令:pytest、Jest、Vitest、Go、Rust/Cargo、TAP 和 TypeScript 编译器命令。- 当映射完整时,插件会运行与更改源文件约定匹配的测试。
- 当映射不完整时,它会运行配置的完整套件并报告原因。
- 插件拒绝 shell 操作符和命令替换,以确保安全执行。
-
管理与工具
提供两个工具:test_pilot_status:返回活动运行计数和最新结果。可选参数可限制包含最多 20 个最近的边界摘要。test_pilot_run:在当前工作区或指定的cwd中启动配置的完整命令。
-
结果持久化
测试结果保留 30 天。终端摘要原子性地存储在$DSH_HOME/data/dsh-test-pilot/state.json中。工作区路径使用 SHA-256 键表示,持久化的行仅包含状态、运行器、计数、时间戳/持续时间和失败测试标识符,绝不包含命令或完整输出。最多保留 50 个工作区和 50 条历史记录。
安装与启用¶
使用官方命令安装插件到 DSH web 配置文件:
dsh plugin --profile web add @goodandready/dsh-test-pilot
安装后,进入设置 -> 插件 -> 插件设置,展开 Test Pilot 面板,以编辑自动运行和配置。
典型用法¶
- 在设置中展开 Test Pilot,编辑自动运行配置和运行器默认值。
- 在开发过程中,使用
test_pilot_run工具手动启动配置的完整命令进行测试。
注意事项¶
- 该插件目前是 MVP 阶段,定位为验证器,不具备编辑文件、启动修复轮次、提交/推送、阻止审批或发送遥测的能力。
- 如果状态损坏或为未知版本,插件将从空状态开始。
- 并发请求不能在同一可变目录上同时测试,插件会序列化自动和手动运行。
总结¶
Test Pilot 为 DSH 中的 AI 代码更改提供了必要的可执行信号,通过后台运行和持久化结果来增强开发流程。
- GitHub: https://github.com/GooDAnDReaDY/dsh-test-pilot
- 插件目录: https://www.skillhub.cn/plugins/GooDAnDReaDY/dsh-test-pilot