本页内容

本页内容

测试和CI

命令面

命令界面

每个 QA 流程都在 pnpm openclaw qa <subcommand> 下运行。许多流程都有 pnpm qa:* 脚本别名;两种形式都可用。

QA 命令失败将其诊断消息打印到 stderr 并以代码 1 退出。在运行开始之前,参数解析器会报告无效的选项值。

命令 用途
qa run 不带 --qa-profile 时运行捆绑的 QA 自检;使用 --qa-profile smoke-ci、--qa-profile release 或 --qa-profile all 时,运行由分类体系支持的成熟度配置。
qa suite 针对 QA 网关通道运行存储库支持的场景。 --runner multipass使用一次性Linux VM代替主机。
qa coverage 输出 YAML 场景覆盖清单(机器输出使用 --json;使用 --match <query> 查找与已修改行为相关的场景;使用 --tools 查看运行时工具夹具覆盖)。
qa parity-report 比较两个 qa-suite-summary.json 文件的模型轴奇偶校验门,或使用 --runtime-axis --token-efficiency 编写 Codex-vs-OpenClaw 运行时奇偶校验和令牌效率报告。
qa confidence-report 根据清单对 QA 证明工件进行分类,生成不含 unknown 项的置信度报告。
qa confidence-self-test 写入预置的负控制 canary,证明置信度门禁能检测漂移。
qa jsonl-replay 通过运行时一致性重放测试工具重放精选的 JSONL transcript。
qa character-eval 在多个实时模型上运行角色 QA 场景并生成判断报告。请参阅 报告 。
qa manual 针对选定的 provider/model 通道运行一次性提示。
qa ui 启动 QA 调试器 UI 和本地 QA 总线(别名:pnpm qa:lab:ui)。
qa docker-build-image 构建预制的 QA Docker 镜像。
qa docker-scaffold 为 QA 仪表板 + 网关通道编写 docker-compose 启动文件。
qa up 构建 QA 站点,启动 Docker-backed 堆栈,打印 URL(别名:pnpm qa:lab:up;:fast 变体添加 --use-prebuilt-image --bind-ui-dist --skip-ui-build)。
qa aimock 仅启动 AIMock provider server。
qa mock-openai 仅启动面向场景的 mock-openai provider server。
qa credentials doctor / add / list / remove 管理共享的 Convex credential pool。
qa buzz 针对真实 Buzz relay room 的实时传输通道,使用专用的 driver 和 SUT 身份。
qa discord 针对真实私有 Discord guild channel 的实时传输通道。
qa matrix QA 实验室 Matrix 针对一次性 Tuwunel 家庭服务器的目录场景。参见Matrix实时通道。
qa slack 针对真实私有 Slack channel 的实时传输通道。
qa telegram 针对真实私有 Telegram group 的实时传输通道。
qa whatsapp 针对真实 WhatsApp Web 账户的实时传输通道。
qa mantis 用于实时传输错误的 Before/after 验证运行程序,具有 Discord 状态反应证据、Crabbox desktop/browser 烟雾和 Slack-in-VNC 烟雾。请参阅 Mantis 和 Mantis Slack 桌面 Runbook。

基于配置的 qa run

配置文件支持的 qa run 从 taxonomy.yaml 读取成员资格,然后通过 qa suite 分派已解决的场景。 --surface 和 --category 过滤选定的配置文件,而不是定义单独的泳道。生成的 qa-evidence.json 包括配置文件记分卡摘要,其中包含所选类别计数和缺失的覆盖范围 ID;各个证据条目仍然是测试、覆盖角色和结果的事实来源。分类功能覆盖 ID 是精确的证明目标,而不是别名:主要场景覆盖满足匹配 ID,而次要覆盖保持建议性。每个覆盖范围 ID 恰好是 taxonomy-surface.feature,使用 taxonomy.yaml 的短表面 ID。场景的单独 surface 字段是 execution/reporting 标签(例如,channel 或 runtime-tool);它没有定义分类所有权。显式配置文件覆盖范围 ID 选择该 ID 的每个合格主要所有者,并按场景进行重复数据删除。场景文件和分类顺序不影响成员资格或执行顺序。

scenario.execution.channels 是一个 OR eligibility 列表:特定 channel 的 runner 可以在所列 channel 中任选一个执行该场景。基于配置的执行会将同一列表扩展到所选 driver 支持的每个 channel,并且只有在每个扩展后的 channel 执行都通过时,配置执行才会通过。这一规则统一适用于每个 taxonomy profile。

精简 evidence 会省略每个条目的 execution,并设置 evidenceMode: "slim"; smoke-ci 默认使用 slim,而 --evidence-mode full 会恢复完整条目:

bash
pnpm openclaw qa run \  --qa-profile smoke-ci \  --category channels.conversation-routing-and-delivery \  --provider-mode mock-openai \  --output-dir .artifacts/qa-e2e/smoke-ci-profile-dispatch

使用 smoke-ci 通过模拟模型提供商和 Crabline 本地提供商服务器进行可重复的配置文件证明。使用 release 进行 Stable/LTS 对抗实时频道的验证。仅将 all 用于显式的全分类证据运行;它选择每个活动成熟度类别,并可以通过 QA Profile Evidence GitHub Actions 工作流程与 qa_profile=all 进行调度。当命令还需要 OpenClaw 根配置文件时,请将根配置文件放在 QA 命令之前:

bash
pnpm openclaw --profile work qa run --qa-profile smoke-ci
本页有帮助吗?