Testowanie Pluginów
Dokumentacja narzędzi testowych, wzorców i egzekwowania reguł lintingu dla pluginów OpenClaw.Narzędzia testowe
Import:openclaw/plugin-sdk/testing
Podścieżka testowa eksportuje wąski zestaw pomocników dla autorów pluginów:
Dostępne eksporty
| Export | Cel |
|---|---|
installCommonResolveTargetErrorCases | Współdzielone przypadki testowe dla obsługi błędów rozwiązywania celu |
shouldAckReaction | Sprawdza, czy kanał powinien dodać reakcję ack |
removeAckReactionAfterReply | Usuwa reakcję ack po dostarczeniu odpowiedzi |
Typy
Podścieżka testowa ponownie eksportuje także typy przydatne w plikach testowych:Testowanie rozwiązywania celu
UżyjinstallCommonResolveTargetErrorCases, aby dodać standardowe przypadki błędów dla
rozwiązywania celu kanału:
Wzorce testowania
Testy jednostkowe Pluginu kanału
Testy jednostkowe Pluginu dostawcy
Mockowanie środowiska uruchomieniowego Pluginu
W przypadku kodu używającegocreatePluginRuntimeStore zamockuj runtime w testach:
Testowanie z użyciem stubów per instancja
Preferuj stuby per instancja zamiast mutacji prototypu:Testy kontraktowe (pluginy w repozytorium)
Dołączone pluginy mają testy kontraktowe, które weryfikują własność rejestracji:- Które pluginy rejestrują których dostawców
- Które pluginy rejestrują których dostawców mowy
- Poprawność kształtu rejestracji
- Zgodność z kontraktem runtime
Uruchamianie testów zakresowych
Dla konkretnego pluginu:Egzekwowanie reguł lintingu (pluginy w repozytorium)
Trzy reguły są egzekwowane przezpnpm check dla pluginów w repozytorium:
- Brak monolitycznych importów z root — barrel root
openclaw/plugin-sdkjest odrzucany - Brak bezpośrednich importów z
src/— pluginy nie mogą importować../../src/bezpośrednio - Brak importów do siebie samych — pluginy nie mogą importować własnej podścieżki
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
- Pluginy kanałów SDK — interfejs Pluginu kanału
- Pluginy dostawców SDK — hooki Pluginu dostawcy
- Tworzenie Pluginów — przewodnik na początek