@ruihuahe/dsh-test
v0.1.0
Published
Standalone CLI for isolated, evidence-backed DeepSeek Harness testing
Readme
@ruihuahe/dsh-test
English | 中文
@ruihuahe/dsh-test 提供独立的 dsh-test CLI,用于隔离的 Web 测试运行。每个 run 独占 workspace、持久化根目录、浏览器会话、断言和证据目录。浏览器动作负责驱动 UI,Session、RPC、service 和文件系统断言负责验证权威副作用。
这个包是外部测试控制器,不是 Cordis 插件。因此它有意不声明 dsh.plugin 或 dsh.bundle,也不会挂载到生产 profile。
该包不属于默认的 dsh-base 或 dsh-web-app bundle。测试 Host 必须显式组合真实 Web scaffold,并通过公开配置 overlay 挂载本地插件。
dsh-test run start --host-module ./my-web-host.mjs --json
dsh-test run status --run <run-id> --host-module ./my-web-host.mjs --json
dsh-test run stop --run <run-id> --host-module ./my-web-host.mjs --jsonWorkflow 文件提供可恢复的命令序列。每条命令携带 run 身份和幂等 request 身份,每个响应都使用 @ruihuahe/dsh-test/protocol 导出的版本化 JSON envelope。
Host module
--host-module <path-or-package> 会在本次 CLI 调用中显式加载 ESM 测试 Host。模块可以直接导出 createComposition(context),也可以导出 default.createComposition(context) 或 testHost.createComposition(context)。返回的 TestComposition 会在每个生命周期钩子中获得持久化 manifest,因此新的 CLI 进程可通过 runDir、persistenceRoot、baseUrl 和 processId 重新连接。
Host command 默认只得到 scenario-verified。若要返回 renderer-verified,Host 必须同时返回位于该 run evidenceDir 内的 evidenceManifestPath;清单必须包含非空的 ARIA 快照、截图、控制台、网络和全部通过的断言证据,否则 CLI 会拒绝升级验证等级。
仓库内的真实 Harness Web 适配器位于 apps/web/tests/dsh-test-host.ts。它在独立子进程中启动真实 Web scaffold 和 headless Chromium,Web 与控制端点均使用动态端口,并把 baseUrl、runtimeId 和 processId 写回 run manifest。run resume 会先通过 run 目录中的运行时状态文件重连;原进程不存在时才用同一隔离 profile 和持久化目录重启。
统一模型中心场景使用本地 OIDC/New API 假服务,不读取真实账号或网络凭据:
node lib/cli.js run start --host-module E:/_workSpace/_Agents/deepseek-harness/apps/web/tests/dsh-test-host.ts --retain --json
node lib/cli.js workflow run --file scenarios/model-center-unified-entry.workflow.json --run <run-id> --host-module E:/_workSpace/_Agents/deepseek-harness/apps/web/tests/dsh-test-host.ts --json
node lib/cli.js run stop --run <run-id> --host-module E:/_workSpace/_Agents/deepseek-harness/apps/web/tests/dsh-test-host.ts --retain --json