跳到內容

OpenClaw 測試指南:從單元測試到真實 Provider 驗證

寫過 AI 應用的開發者都知道,最痛苦的不是寫程式碼,而是測試。有時候 Local 跑得好好的,上線後 Provider API 一改或 Gateway 網路一抖,整個 Bot 就掛了。

你需要一套能兼顧速度與真實性的測試流程,而不是每次都靠手動測試來燒錢。OpenClaw 提供了三種測試套件,讓你從快速的邏輯驗證到昂貴的真實環境測試都能輕鬆搞定。

在開始測試之前,請確保你已經準備好:

  • pnpm:用於執行所有測試指令
  • API Key:如果你要跑 Live 測試,需要準備對應 Provider 的憑證
  • Docker:如果你需要在 Linux 環境下驗證功能

這是最快的路徑,建議你在 Push 程式碼之前,至少跑過一次完整的檢查:

Terminal window
# 完整檢查(建議推 code 前執行)
pnpm lint && pnpm build && pnpm test
# 執行單元測試並查看覆蓋率
pnpm test:coverage
# 執行 E2E 測試(驗證 Gateway 網路)
pnpm test:e2e
# 執行 Live 測試(使用真實 Provider,會產生費用)
pnpm test:live

OpenClaw 的測試分為三個等級,你可以根據目前的開發階段選擇合適的套件:

測試類型指令範圍速度需要 Key?CI 執行
Unit / Integrationpnpm test純邏輯、進程內整合、回歸測試快 ⚡否是
E2E (Gateway Smoke)pnpm test:e2e多實例 Gateway、WebSocket、HTTP 面、節點配對較慢否是 (需開啟)
Live (Real Providers)pnpm test:live對真實 Provider 發送 API 請求視網路而定是否
  • 修改邏輯或測試: 使用 pnpm test
  • 調整 Gateway 網路架構: 增加 pnpm test:e2e
  • 遇到「Bot 壞了」或 Provider 出問題: 使用縮小範圍的 pnpm test:live

Live 測試分為兩個層級,幫助你釐清問題出在哪:

第一層:直接模型測試 (Direct Model Completion)

Section titled “第一層:直接模型測試 (Direct Model Completion)”

路徑: src/agents/models.profiles.live.test.ts

這會跳過 Gateway 直接測試 Provider。當你想確認「是 API 壞了」還是「我的 Pipeline 壞了」時非常有用。

Terminal window
OPENCLAW_LIVE_MODELS="openai/gpt-5.2" pnpm test:live src/agents/models.profiles.live.test.ts

路徑: src/gateway/gateway-models.profiles.live.test.ts

這會測試完整的 Pipeline:Gateway → Agent → Model → Tools。包含讀取測試、執行與讀取測試,以及圖片 OCR 測試。

Terminal window
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts

為了省錢跟節省時間,建議使用 allowlists 只跑特定的模型:

Terminal window
# 單一模型,直接測試
OPENCLAW_LIVE_MODELS="openai/gpt-5.2" pnpm test:live src/agents/models.profiles.live.test.ts
# 單一模型,透過 Gateway
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
# 同時測試多個 Provider
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,anthropic/claude-opus-4-5,google/gemini-3-flash-preview" pnpm test:live

如果你想在 Linux 環境驗證功能,可以使用 Docker Runner:

Terminal window
pnpm test:docker:live-models # 直接測試模型
pnpm test:docker:live-gateway # Gateway + Agent
pnpm test:docker:onboard # 註冊引導精靈
pnpm test:docker:gateway-network # 雙容器網路測試
pnpm test:docker:plugins # Plugin 載入測試
變數預設值描述
OPENCLAW_CONFIG_DIR~/.openclaw掛載至 /home/node/.openclaw
OPENCLAW_WORKSPACE_DIR~/.openclaw/workspace掛載至 /home/node/.openclaw/workspace
OPENCLAW_LIVE_GATEWAY_MODELS—指定測試模型
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS0強制僅使用 Profile 中的憑證

當你修復了一個 Provider 或模型的問題後:

  1. 優先考慮 CI 安全: 儘可能使用 Mock 或 Stub 模擬 Provider。
  2. 必要時才用 Live: 保持測試範圍精確並使用環境變數隔離。
  3. 針對正確的層級:
    • Provider 的 Bug → models.profiles.live.test.ts
    • Pipeline 的 Bug → gateway-models.profiles.live.test.ts

這是目前推薦的現代模型測試組合:

Terminal window
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-5,google/gemini-3-flash-preview,zai/glm-4.7,minimax/minimax-m2.1" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts

如果你在測試中遇到問題,可以先檢查以下幾點:

  • API 壞了還是 Pipeline 壞了? 先跑 Layer 1 測試(直接測試模型),如果 Layer 1 過了但 Layer 2 沒過,那就是 Gateway 或 Agent 的問題。
  • 憑證問題: Live 測試會從 ~/.openclaw/credentials/、openclaw.json 或環境變數中尋找 Key。你可以執行 openclaw models list 確認目前的模型狀態。
  • Deepgram 測試失敗: 確保你有設定 DEEPGRAM_API_KEY=... 並開啟 DEEPGRAM_LIVE_TEST=1。

還是搞不定?我們的 AI Setup Assistant 可以幫你解決測試相關的問題。

OpenClaw

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。