Pengujian Plugin
Referensi untuk utilitas pengujian, pola, dan penegakan lint untuk plugin OpenClaw.Utilitas pengujian
Import:openclaw/plugin-sdk/testing
Subpath pengujian mengekspor sekumpulan helper yang sempit untuk penulis plugin:
Ekspor yang tersedia
| Ekspor | Tujuan |
|---|---|
installCommonResolveTargetErrorCases | Kasus pengujian bersama untuk penanganan error resolusi target |
shouldAckReaction | Memeriksa apakah sebuah channel harus menambahkan reaksi ack |
removeAckReactionAfterReply | Menghapus reaksi ack setelah pengiriman balasan |
Tipe
Subpath pengujian juga mengekspor ulang tipe yang berguna di file pengujian:Menguji resolusi target
GunakaninstallCommonResolveTargetErrorCases untuk menambahkan kasus error standar untuk
resolusi target channel:
Pola pengujian
Unit test plugin channel
Unit test plugin provider
Mock runtime plugin
Untuk kode yang menggunakancreatePluginRuntimeStore, mock runtime dalam pengujian:
Menguji dengan stub per instance
Utamakan stub per instance daripada mutasi prototype:Contract test (plugin dalam repo)
Plugin bawaan memiliki contract test yang memverifikasi kepemilikan registrasi:- Plugin mana yang mendaftarkan provider tertentu
- Plugin mana yang mendaftarkan provider speech tertentu
- Kebenaran bentuk registrasi
- Kepatuhan kontrak runtime
Menjalankan pengujian terarah
Untuk plugin tertentu:Penegakan lint (plugin dalam repo)
Tiga aturan diberlakukan olehpnpm check untuk plugin dalam repo:
- Tidak boleh import root monolitik — root barrel
openclaw/plugin-sdkditolak - Tidak boleh import
src/langsung — plugin tidak boleh mengimpor../../src/secara langsung - Tidak boleh self-import — plugin tidak boleh mengimpor subpath
plugin-sdk/<name>miliknya sendiri
Konfigurasi pengujian
OpenClaw menggunakan Vitest dengan ambang cakupan V8. Untuk pengujian plugin:Terkait
- SDK Overview — konvensi import
- SDK Channel Plugins — antarmuka plugin channel
- SDK Provider Plugins — hook plugin provider
- Building Plugins — panduan memulai