測試
- 完整測試套件(套件、實況、Docker):測試
-
pnpm test:force:終止任何佔據預設控制連接埠的舊有閘道程序,然後使用隔離的閘道連接埠執行完整 Vitest 套件,以便伺服器測試不會與執行中的實例衝突。當先前的閘道執行使連接埠 18789 佔據時使用。 -
pnpm test:coverage:使用 V8 涵蓋(透過vitest.unit.config.ts)執行單位套件。全局閾值為 70% 行/分支/函式/陳述式。涵蓋排除整合繁重的進入點(CLI 接線、閘道/telegram 橋接、webchat 靜態伺服器)以保持目標專注於單位可測試邏輯。 -
pnpm test(在 Node 24+ 上):OpenClaw 自動停用 VitestvmForks並使用forks以避免ERR_VM_MODULE_LINK_FAILURE/module is already linked。您可以使用OPENCLAW_TEST_VM_FORKS=0|1強制行為。 -
pnpm test:預設執行快速核心單位通道以提供快速本地回饋。 -
pnpm test:channels:執行頻道繁重的套件。 -
pnpm test:extensions:執行擴充套件/外掛套件。 -
閘道整合:透過
OPENCLAW_TEST_INCLUDE_GATEWAY=1 pnpm test或pnpm test:gateway選擇加入。 -
pnpm test:e2e:執行閘道端到端煙霧測試(多實例 WS/HTTP/node 配對)。預設為vitest.e2e.config.ts中的vmForks+ 自適應背景工作;使用OPENCLAW_E2E_WORKERS=<n>調整並設定OPENCLAW_E2E_VERBOSE=1以取得詳細記錄。 -
pnpm test:live:執行提供者實況測試(minimax/zai)。需要 API 金鑰和LIVE=1(或提供者特定*_LIVE_TEST=1)以取消略過。
本地 PR 門
對於本地 PR 著陸/門檢查,執行:pnpm checkpnpm buildpnpm testpnpm check:docs
pnpm test 在已載入的主機上翻轉,在將其視為迴歸前重新執行一次,然後使用 pnpm vitest run <path/to/test> 隔離。對於記憶體受限的主機,使用:
OPENCLAW_TEST_PROFILE=low OPENCLAW_TEST_SERIAL_GATEWAY=1 pnpm test
模型潛時基準(本地金鑰)
指令碼:scripts/bench-model.ts
用法:
source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10- 選擇性環境:
MINIMAX_API_KEY、MINIMAX_BASE_URL、MINIMAX_MODEL、ANTHROPIC_API_KEY - 預設提示:「回覆單一單字:ok。沒有標點符號或額外文字。」
- minimax 中位 1279ms(最小 1114,最大 2431)
- opus 中位 2454ms(最小 1224,最大 3170)
CLI 啟動基準
指令碼:scripts/bench-cli-startup.ts
用法:
pnpm tsx scripts/bench-cli-startup.tspnpm tsx scripts/bench-cli-startup.ts --runs 12pnpm tsx scripts/bench-cli-startup.ts --entry dist/entry.js --timeout-ms 45000
--version--helphealth --jsonstatus --jsonstatus
登機 E2E(Docker)
Docker 是選擇性的;僅當需要容器化登機煙霧測試時才需要。 乾淨 Linux 容器中的完整冷啟動流程:openclaw health。
QR 匯入煙霧(Docker)
確保qrcode-terminal 在支援的 Docker Node 執行時間下載入(Node 24 預設,Node 22 相容):