Plugin Testing
OpenClaw plugin 向けのテストユーティリティ、パターン、および lint enforcement の リファレンスです。テストユーティリティ
import:openclaw/plugin-sdk/testing
testing subpath は、plugin 作成者向けに絞られた helper 群を export します:
利用可能な export
| Export | Purpose |
|---|---|
installCommonResolveTargetErrorCases | target 解決のエラーハンドリング用の共通テストケース |
shouldAckReaction | channel が ack reaction を追加すべきか確認する |
removeAckReactionAfterReply | reply 配信後に ack reaction を削除する |
型
testing subpath は、テストファイルで便利な型も再 export します:target 解決のテスト
channel target 解決の標準エラーケースを追加するには、installCommonResolveTargetErrorCases を使います:
テストパターン
channel plugin のユニットテスト
provider plugin のユニットテスト
plugin runtime のモック
createPluginRuntimeStore を使うコードでは、テスト内で runtime をモックします:
インスタンスごとの stub を使ったテスト
prototype の変更ではなく、インスタンスごとの stub を推奨します:contract test(repo 内 plugin)
bundled plugin には、登録の所有権を検証する contract test があります:- どの plugin がどの provider を登録するか
- どの plugin がどの speech provider を登録するか
- 登録形状の正しさ
- runtime contract への準拠
スコープ付きテストの実行
特定の plugin 向け:lint enforcement(repo 内 plugin)
repo 内 plugin には、pnpm check により 3 つのルールが強制されます:
- 単一ルート import の禁止 —
openclaw/plugin-sdkのルート barrel は拒否される - 直接の
src/import の禁止 — plugin は../../src/を直接 import できない - self-import の禁止 — plugin は自身の
plugin-sdk/<name>subpath を import できない
テスト設定
OpenClaw は、V8 coverage threshold を持つ Vitest を使用します。plugin テストでは:関連
- SDK Overview — import 規約
- SDK Channel Plugins — channel plugin interface
- SDK Provider Plugins — provider plugin hook
- Building Plugins — はじめにガイド