Plugin Testleri
OpenClaw plugin’leri için test yardımcıları, kalıplar ve lint zorunluluğuna ilişkin başvuru.Test yardımcıları
İçe aktarma:openclaw/plugin-sdk/testing
Testing alt yolu, plugin yazarları için dar bir yardımcı kümesi dışa aktarır:
Kullanılabilir dışa aktarımlar
| Dışa aktarım | Amaç |
|---|---|
installCommonResolveTargetErrorCases | Hedef çözümleme hata işleme için paylaşılan test durumları |
shouldAckReaction | Bir kanalın ack reaction ekleyip eklememesi gerektiğini denetler |
removeAckReactionAfterReply | Yanıt tesliminden sonra ack reaction’ı kaldırır |
Türler
Testing alt yolu, test dosyalarında yararlı olan türleri de yeniden dışa aktarır:Hedef çözümlemeyi test etme
Kanal hedef çözümlemesi için standart hata durumları eklemek üzereinstallCommonResolveTargetErrorCases kullanın:
Test kalıpları
Bir channel plugin’ini birim testiyle test etme
Bir provider plugin’ini birim testiyle test etme
Plugin çalışma zamanını taklit etme
createPluginRuntimeStore kullanan kod için testlerde çalışma zamanını taklit edin:
Örnek başına stub’larla test etme
Prototype mutation yerine örnek başına stub’ları tercih edin:Sözleşme testleri (repo içi plugin’ler)
Paketlenmiş plugin’lerin, kayıt sahipliğini doğrulayan sözleşme testleri vardır:- Hangi plugin’lerin hangi provider’ları kaydettiği
- Hangi plugin’lerin hangi speech provider’larını kaydettiği
- Kayıt şeklinin doğruluğu
- Çalışma zamanı sözleşmesine uyumluluk
Kapsamlı testleri çalıştırma
Belirli bir plugin için:Lint zorunluluğu (repo içi plugin’ler)
Repo içi plugin’ler içinpnpm check tarafından üç kural zorunlu tutulur:
- Monolitik kök içe aktarımları yok —
openclaw/plugin-sdkkök barrel reddedilir - Doğrudan
src/içe aktarımları yok — plugin’ler../../src/yolunu doğrudan içe aktaramaz - Kendi kendine içe aktarma yok — plugin’ler kendi
plugin-sdk/<name>alt yolunu içe aktaramaz
Test yapılandırması
OpenClaw, V8 kapsam eşikleriyle Vitest kullanır. Plugin testleri için:İlgili
- SDK Genel Bakış — içe aktarma kuralları
- SDK Channel Plugins — channel plugin arabirimi
- SDK Provider Plugins — provider plugin hook’ları
- Plugin Geliştirme — başlangıç kılavuzu