Test dei plugin
Riferimento per utility di test, pattern e applicazione del lint per i plugin OpenClaw.Utility di test
Import:openclaw/plugin-sdk/testing
Il sottopercorso di test esporta un insieme ristretto di helper per gli autori di plugin:
Export disponibili
| Export | Scopo |
|---|---|
installCommonResolveTargetErrorCases | Casi di test condivisi per la gestione degli errori di risoluzione del target |
shouldAckReaction | Controlla se un canale deve aggiungere una reazione di ack |
removeAckReactionAfterReply | Rimuove la reazione di ack dopo la consegna della risposta |
Tipi
Il sottopercorso di test riesporta anche tipi utili nei file di test:Testare la risoluzione del target
UsainstallCommonResolveTargetErrorCases per aggiungere casi di errore standard per la
risoluzione del target del canale:
Pattern di test
Test unitario di un plugin di canale
Test unitario di un plugin provider
Mockare il runtime del plugin
Per il codice che usacreatePluginRuntimeStore, effettua il mock del runtime nei test:
Testare con stub per istanza
Preferisci stub per istanza invece della mutazione del prototype:Test di contratto (plugin nel repository)
I plugin inclusi hanno test di contratto che verificano la proprietà della registrazione:- Quali plugin registrano quali provider
- Quali plugin registrano quali provider speech
- Correttezza della forma di registrazione
- Conformità del contratto runtime
Eseguire test mirati
Per un plugin specifico:Applicazione del lint (plugin nel repository)
Tre regole sono applicate dapnpm check per i plugin nel repository:
- Nessun import monolitico dalla root — il barrel root
openclaw/plugin-sdkviene rifiutato - Nessun import diretto da
src/— i plugin non possono importare direttamente../../src/ - Nessun self-import — i plugin non possono importare il proprio sottopercorso
plugin-sdk/<name>
Configurazione dei test
OpenClaw usa Vitest con soglie di copertura V8. Per i test dei plugin:Correlati
- Panoramica SDK — convenzioni di importazione
- SDK Channel Plugins — interfaccia dei plugin di canale
- SDK Provider Plugins — hook dei plugin provider
- Creare plugin — guida introduttiva