关于 openclaw-docker-e2e-authoring
供 OpenClaw 贡献者编写或修改 Docker 端到端测试通道的技能,区分确定性依赖边界测试与真实提供方验证,并说明如何编写和验证两类测试。
主要功能
- 01选择确定性或真实 Docker 测试
- 02用 JSONL 日志断言边界载荷
- 03将测试辅助代码置于生产代码之外
- 04添加包脚本和场景通道
- 05验证 chat.send 完成状态与历史
适用场景
- 01添加 Docker 发布路径测试
- 02用伪服务验证载荷路由
- 03验证真实提供方行为
- 04通过可见历史测试 chat.send
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openclaw/ openclaw --skill openclaw-docker-e2e-authoring安装后在 Claude Code 中输入/openclaw-docker-e2e-authoring确认已加载。
详细介绍
OpenClaw Docker E2E 编写
在添加或修改 Docker E2E 测试路径、发布路径 Docker 测试或 真实提供商 Docker 验证时,请遵循本节。
测试路径选择
- 确定性 Docker:模拟依赖项/服务,并断言跨边界的精确运行时 契约。
- 真实环境 Docker:仅当用户可见行为需要真实服务时,才使用提供商的 真实凭据/模型。
- 两者证明的风险不同时,优先都覆盖:确定性环境用于字节/载荷 路由,真实环境用于提供商的实际行为。
编写规则
- 仅测试用的辅助程序应位于
test/helpers或scripts/e2e/lib/<lane>/,而不是src/**,除非生产代码会导入它们。 - 通过包安装的应用从
/app运行;仅以只读方式挂载明确指定的测试框架/辅助程序 路径。 - 模拟服务应将边界请求记录为 JSONL,客户端应断言实际依赖项载荷, 而不只是进程是否成功。
- 在同一次更改中添加包脚本和
scripts/lib/docker-e2e-scenarios.mjs测试 路径。 - 如果测试路径从 npm 安装插件,则通过环境变量设置默认包规格,以便已发布 路径和本地覆盖路径都可测试。
媒体与视觉
- 预期答案必须仅存在于待测的像素或提供商输出中。
- 使用中性文件名和中性提示词,且不得泄露元数据。
- 随机位图/OCR 令牌应复用仓库的 OCR 安全字母表
24567ACEF,除非 测试使用更强的字形集。 - 验证真实图像理解能力时,应确保每次运行的预期答案 唯一。
chat.send E2E
- 要求
chat.send返回status: "started"和字符串类型的runId。 - 使用
agent.wait等待完成。 - 当测试目标不是事件顺序时,通过
chat.history断言最终用户可见 文本。 - 仅当缺陷路径需要排队的传入消息/频道上下文时,保留来源频道/账户 元数据。
验证
运行覆盖已修改测试路径的最小验证:
pnpm exec oxfmt --write <changed files>
node --check <new .mjs files>
bash -n <new .sh files>
node scripts/run-vitest.mjs test/scripts/docker-e2e-plan.test.ts
OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:<lane>
对于真实提供商测试路径,在确定性 Docker 验证通过后,运行对应的真实环境
Docker 脚本。提交或创建 PR 前,最后运行 $autoreview。
评论
支持 Markdown