Plugin-Tests
Referenz für Testhilfen, Muster und Lint-Durchsetzung für OpenClaw- Plugins.Testhilfen
Import:openclaw/plugin-sdk/testing
Der Testing-Subpfad exportiert eine gezielte Menge 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 Kanal eine Ack-Reaktion hinzufügen sollte |
removeAckReactionAfterReply | Ack-Reaktion nach der Zustellung einer Antwort entfernen |
Typen
Der Testing-Subpfad exportiert auch Typen erneut, die in Testdateien nützlich sind:Zielauflösung testen
Verwenden SieinstallCommonResolveTargetErrorCases, um Standardfehlerfälle für
die Zielauflösung von Kanälen hinzuzufügen:
Testmuster
Unit-Tests für ein Kanal-Plugin
Unit-Tests für ein Provider-Plugin
Die Plugin-Laufzeit mocken
Für Code, dercreatePluginRuntimeStore verwendet, sollten Sie die Laufzeit in Tests mocken:
Mit instanzspezifischen Stubs testen
Bevorzugen Sie instanzspezifische Stubs gegenüber Prototyp-Mutation:Vertragstests (Plugins im Repository)
Gebündelte Plugins haben Vertragstests, die die Besitzerschaft der Registrierung verifizieren:- Welche Plugins welche Provider registrieren
- Welche Plugins welche Speech-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 erzwungen:
- Keine monolithischen Root-Imports — Das Root-Barrel
openclaw/plugin-sdkwird abgelehnt - Keine direkten
src/-Imports — Plugins dürfen../../src/nicht direkt importieren - Keine Selbstimporte — Plugins dürfen ihren eigenen Subpfad
plugin-sdk/<name>nicht importieren
Testkonfiguration
OpenClaw verwendet Vitest mit V8-Coverage-Schwellenwerten. Für Plugin-Tests:Verwandt
- SDK-Überblick — Importkonventionen
- SDK-Kanal-Plugins — Schnittstelle für Kanal-Plugins
- SDK-Provider-Plugins — Hooks für Provider-Plugins
- Plugins erstellen — Einstiegsleitfaden