Plugin-Tests
Referenz für Testhilfsprogramme, Muster und Lint-Durchsetzung für OpenClaw- Plugins.Testhilfsprogramme
Import:openclaw/plugin-sdk/testing
Der Testing-Subpath exportiert einen eingeschränkten Satz von Hilfsfunktionen für Plugin-Autorinnen und -Autoren:
Verfügbare Exporte
| Export | Zweck |
|---|---|
installCommonResolveTargetErrorCases | Gemeinsame Testfälle für die Fehlerbehandlung bei der Zielauflösung |
shouldAckReaction | Prüfen, ob ein Channel eine Ack-Reaktion hinzufügen sollte |
removeAckReactionAfterReply | Ack-Reaktion nach der Zustellung der Antwort entfernen |
Typen
Der Testing-Subpath exportiert außerdem Typen erneut, die in Testdateien nützlich sind:Zielauflösung testen
Verwenden SieinstallCommonResolveTargetErrorCases, um Standardfehlerfälle für die Channel-Zielauflösung hinzuzufügen:
Testmuster
Unit-Tests für ein Channel-Plugin
Unit-Tests für ein Provider-Plugin
Die Plugin-Laufzeit mocken
Für Code, dercreatePluginRuntimeStore verwendet, mocken Sie die Laufzeit in Tests:
Mit instanzspezifischen Stubs testen
Bevorzugen Sie instanzspezifische Stubs statt Prototyp-Mutation:Vertragstests (Plugins im Repository)
Gebündelte Plugins haben Vertragstests, die die Besitzverhältnisse bei der Registrierung überprüfen:- Welche Plugins welche Provider registrieren
- Welche Plugins welche Sprach-Provider registrieren
- Korrektheit der Registrierungsform
- Einhaltung des Laufzeitvertrags
Scoped Tests ausführen
Für ein bestimmtes Plugin:Lint-Durchsetzung (Plugins im Repository)
Drei Regeln werden durchpnpm check für Plugins im Repository durchgesetzt:
- Keine monolithischen Root-Importe — die Root-Barrel-Datei
openclaw/plugin-sdkwird abgelehnt - Keine direkten
src/-Importe — Plugins dürfen../../src/nicht direkt importieren - Keine Selbstimporte — Plugins dürfen nicht ihren eigenen Subpath
plugin-sdk/<name>importieren
Testkonfiguration
OpenClaw verwendet Vitest mit V8-Coverage-Schwellenwerten. Für Plugin-Tests:Verwandte Themen
- SDK Overview — Importkonventionen
- SDK Channel Plugins — Channel-Plugin-Schnittstelle
- SDK Provider Plugins — Provider-Plugin-Hooks
- Building Plugins — Leitfaden für den Einstieg