Skip to main content
OpenClaw 外掛的測試公用程式、模式與 lint 強制規則參考。
正在尋找測試範例嗎? 操作指南包含完整的測試範例: 頻道外掛測試提供者外掛測試

測試公用程式

這些子路徑是 OpenClaw 自有內建外掛測試在存放庫本機使用的原始碼進入點。它們並非為第三方外掛發布的 package.json 匯出,且可能會匯入 Vitest 或其他僅限存放庫使用的測試相依套件。
內建外掛測試請使用這些聚焦的子路徑。先前的 openclaw/plugin-sdk/testing 彙總入口僅供存放庫本機使用,未包含在發布的套件中,現已移除。先前的 openclaw/plugin-sdk/test-utils 別名也隨之移除。pnpm run lint:plugins:no-extension-test-core-importsscripts/check-no-extension-test-core-imports.ts)會讓擴充功能測試繼續使用上述聚焦的測試子路徑。

可用的匯出

內建外掛的合約測試套件也會使用這些 SDK 測試子路徑,取得僅供測試使用的登錄檔、資訊清單、公開成品與執行階段固定資料輔助工具。 依賴內建 OpenClaw 清單的僅限核心測試套件則仍放在 src/plugins/contracts 下。

型別

聚焦測試的子路徑也會重新匯出測試檔案中實用的型別:

測試目標解析

使用 installCommonResolveTargetErrorCases 為頻道目標解析新增標準錯誤案例:

測試模式

測試註冊合約

將手寫的 api 模擬物件傳給 register(api) 的單元測試,不會 執行 OpenClaw 的載入器接受閘門。你的外掛所依賴的每個註冊介面都應至少新增一個由載入器支援的 冒煙測試,尤其是鉤子與記憶等專屬功能。 若缺少必要的中繼資料,或外掛呼叫不屬於自己的功能 API,真正的載入器會使外掛註冊失敗。例如, api.registerHook(...) 需要鉤子名稱,而 api.registerMemoryCapability(...) 要求外掛資訊清單或匯出的 進入點宣告 kind: "memory"

測試執行階段設定存取

優先使用 openclaw/plugin-sdk/plugin-test-runtime 的共用外掛執行階段模擬物件。其執行階段設定輔助工具會模擬 目前的快照與變更 API。

對頻道外掛進行單元測試

對供應商外掛進行單元測試

模擬外掛執行階段

對於使用 createPluginRuntimeStore 的程式碼,請在測試中模擬執行階段:

使用個別執行個體的虛設常式進行測試

優先使用個別執行個體的虛設常式,而不是修改原型:

合約測試(存放於儲存庫內的外掛)

內建外掛具有驗證註冊所有權的合約測試:
這些測試會斷言:
  • 哪些外掛註冊哪些供應商
  • 哪些外掛註冊哪些語音供應商
  • 註冊形式的正確性
  • 執行階段合約遵循情況

執行限定範圍的測試

針對特定外掛:
僅執行合約測試:

Lint 強制檢查(存放於儲存庫內的外掛)

scripts/run-additional-boundary-checks.mjs 會在 CI 中執行一組 lint:plugins:* 匯入邊界檢查;每項檢查也可以在本機獨立執行: 外部外掛不受這些 lint 規則約束,但建議遵循相同的 模式。

測試設定

OpenClaw 使用 Vitest 4,並提供資訊用途的 V8 覆蓋率報告。針對外掛測試:
若本機執行造成記憶體壓力:

相關內容