Tests du Plugin
Référence pour les utilitaires de test, les modèles et l’application des règles de lint pour les plugins OpenClaw.Utilitaires de test
Importation :openclaw/plugin-sdk/testing
Le sous-chemin de test exporte un ensemble restreint d’assistants pour les auteurs de plugins :
Exports disponibles
| Export | But |
|---|---|
installCommonResolveTargetErrorCases | Cas de test partagés pour la gestion des erreurs de résolution de cible |
shouldAckReaction | Vérifier si un canal doit ajouter une réaction d’accusé de réception |
removeAckReactionAfterReply | Supprimer la réaction d’accusé de réception après l’envoi de la réponse |
Types
Le sous-chemin de test réexporte aussi des types utiles dans les fichiers de test :Tester la résolution de cible
UtilisezinstallCommonResolveTargetErrorCases pour ajouter des cas d’erreur standard pour la
résolution de cible de canal :
Modèles de test
Test unitaire d’un Plugin de canal
Test unitaire d’un Plugin de fournisseur
Simuler le runtime du Plugin
Pour le code qui utilisecreatePluginRuntimeStore, simulez le runtime dans les tests :
Tester avec des stubs par instance
Préférez les stubs par instance à la mutation du prototype :Tests de contrat (plugins du dépôt)
Les plugins intégrés disposent de tests de contrat qui vérifient la propriété de l’enregistrement :- Quels plugins enregistrent quels fournisseurs
- Quels plugins enregistrent quels fournisseurs vocaux
- La justesse de la forme d’enregistrement
- La conformité au contrat d’exécution
Exécuter des tests ciblés
Pour un plugin spécifique :Application des règles de lint (plugins du dépôt)
Trois règles sont appliquées parpnpm check pour les plugins du dépôt :
- Pas d’imports racine monolithiques — le barrel racine
openclaw/plugin-sdkest rejeté - Pas d’imports directs depuis
src/— les plugins ne peuvent pas importer../../src/directement - Pas d’auto-imports — les plugins ne peuvent pas importer leur propre sous-chemin
plugin-sdk/<name>
Configuration des tests
OpenClaw utilise Vitest avec des seuils de couverture V8. Pour les tests de plugins :Voir aussi
- Vue d’ensemble du SDK — conventions d’importation
- SDK Channel Plugins — interface de Plugin de canal
- SDK Provider Plugins — hooks de Plugin de fournisseur
- Création de plugins — guide de démarrage