Testowanie pluginów
Referencja narzędzi testowych, wzorców i egzekwowania lint dla pluginów OpenClaw.Narzędzia testowe
Import:openclaw/plugin-sdk/testing
Ta ścieżka podrzędna do testowania eksportuje wąski zestaw helperów dla autorów pluginów:
Dostępne eksporty
| Export | Purpose |
|---|---|
installCommonResolveTargetErrorCases | Współdzielone przypadki testowe do obsługi błędów rozwiązywania celu |
shouldAckReaction | Sprawdza, czy kanał powinien dodać reakcję ack |
removeAckReactionAfterReply | Usuwa reakcję ack po dostarczeniu odpowiedzi |
Typy
Ścieżka podrzędna do testowania ponownie eksportuje też typy przydatne w plikach testowych:Testowanie rozwiązywania celu
UżyjinstallCommonResolveTargetErrorCases, aby dodać standardowe przypadki błędów dla
rozwiązywania celów kanału:
Wzorce testowania
Testy jednostkowe pluginu kanałowego
Testy jednostkowe pluginu providera
Mockowanie runtime pluginu
Dla kodu używającegocreatePluginRuntimeStore mockuj runtime w testach:
Testowanie z per-instance stubs
Preferuj stuby per instancja zamiast modyfikacji prototypu:Testy kontraktowe (pluginy w repozytorium)
Dołączone pluginy mają testy kontraktowe weryfikujące własność rejestracji:- Które pluginy rejestrują które providery
- Które pluginy rejestrują których providerów mowy
- Poprawność kształtu rejestracji
- Zgodność z kontraktem runtime
Uruchamianie testów zakresowych
Dla konkretnego pluginu:Egzekwowanie lint (pluginy w repozytorium)
pnpm check egzekwuje trzy reguły dla pluginów w repozytorium:
- Brak monolitycznych importów root — root barrel
openclaw/plugin-sdkjest odrzucany - Brak bezpośrednich importów
src/— pluginy nie mogą importować bezpośrednio../../src/ - Brak self-imports — pluginy nie mogą importować własnej ścieżki podrzędnej
plugin-sdk/<name>
Konfiguracja testów
OpenClaw używa Vitest z progami pokrycia V8. Dla testów pluginów:Powiązane
- Przegląd SDK — konwencje importu
- SDK pluginów kanałowych — interfejs pluginów kanałowych
- SDK pluginów providerów — hooki pluginów providerów
- Tworzenie pluginów — przewodnik na start