OpenClaw Plugin’leri için test yardımcıları, kalıplar ve lint uygulaması başvurusu.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Test yardımcıları
Bu test yardımcısı alt yolları, OpenClaw’ın kendi paketlenmiş Plugin testleri için depoya yerel kaynak giriş noktalarıdır. Üçüncü taraf Plugin’ler için paket dışa aktarımları değildir. Plugin API mock içe aktarımı:openclaw/plugin-sdk/plugin-test-api
Ajan çalışma zamanı sözleşmesi içe aktarımı: openclaw/plugin-sdk/agent-runtime-test-contracts
Kanal sözleşmesi içe aktarımı: openclaw/plugin-sdk/channel-contract-testing
Kanal test yardımcısı içe aktarımı: openclaw/plugin-sdk/channel-test-helpers
Kanal hedefi test içe aktarımı: openclaw/plugin-sdk/channel-target-testing
Plugin sözleşmesi içe aktarımı: openclaw/plugin-sdk/plugin-test-contracts
Plugin çalışma zamanı test içe aktarımı: openclaw/plugin-sdk/plugin-test-runtime
Sağlayıcı sözleşmesi içe aktarımı: openclaw/plugin-sdk/provider-test-contracts
Sağlayıcı HTTP mock içe aktarımı: openclaw/plugin-sdk/provider-http-test-mocks
Ortam/ağ test içe aktarımı: openclaw/plugin-sdk/test-env
Genel fixture içe aktarımı: openclaw/plugin-sdk/test-fixtures
Node yerleşik mock içe aktarımı: openclaw/plugin-sdk/test-node-mocks
Yeni Plugin testleri için aşağıdaki odaklı alt yolları tercih edin. Geniş
openclaw/plugin-sdk/testing barrel yalnızca eski uyumluluk içindir.
Depo güvenlik kuralları, plugin-sdk/testing ve
plugin-sdk/test-utils üzerinden yeni gerçek içe aktarımları reddeder; bu adlar yalnızca uyumluluk kaydı testleri için kullanımdan kaldırılmış uyumluluk yüzeyleri olarak kalır.
Kullanılabilir dışa aktarımlar
| Dışa aktarım | Amaç |
|---|---|
createTestPluginApi | Doğrudan kayıt birim testleri için en küçük Plugin API mock’u oluşturun. plugin-sdk/plugin-test-api içinden içe aktarın |
AUTH_PROFILE_RUNTIME_CONTRACT | Yerel ajan çalışma zamanı adaptörleri için paylaşılan auth-profile sözleşme fikstürü. plugin-sdk/agent-runtime-test-contracts içinden içe aktarın |
DELIVERY_NO_REPLY_RUNTIME_CONTRACT | Yerel ajan çalışma zamanı adaptörleri için paylaşılan teslimat bastırma sözleşme fikstürü. plugin-sdk/agent-runtime-test-contracts içinden içe aktarın |
OUTCOME_FALLBACK_RUNTIME_CONTRACT | Yerel ajan çalışma zamanı adaptörleri için paylaşılan fallback sınıflandırma sözleşme fikstürü. plugin-sdk/agent-runtime-test-contracts içinden içe aktarın |
createParameterFreeTool | Yerel çalışma zamanı sözleşme testleri için dinamik araç şema fikstürleri oluşturun. plugin-sdk/agent-runtime-test-contracts içinden içe aktarın |
expectChannelInboundContextContract | Kanal inbound bağlam biçimini doğrulayın. plugin-sdk/channel-contract-testing içinden içe aktarın |
installChannelOutboundPayloadContractSuite | Kanal outbound yük sözleşme vakalarını yükleyin. plugin-sdk/channel-contract-testing içinden içe aktarın |
createStartAccountContext | Kanal hesap yaşam döngüsü bağlamları oluşturun. plugin-sdk/channel-test-helpers içinden içe aktarın |
installChannelActionsContractSuite | Genel kanal ileti-eylem sözleşme vakalarını yükleyin. plugin-sdk/channel-test-helpers içinden içe aktarın |
installChannelSetupContractSuite | Genel kanal kurulum sözleşme vakalarını yükleyin. plugin-sdk/channel-test-helpers içinden içe aktarın |
installChannelStatusContractSuite | Genel kanal durum sözleşme vakalarını yükleyin. plugin-sdk/channel-test-helpers içinden içe aktarın |
expectDirectoryIds | Bir dizin listeleme işlevinden kanal dizin kimliklerini doğrulayın. plugin-sdk/channel-test-helpers içinden içe aktarın |
assertBundledChannelEntries | Paketlenmiş kanal giriş noktalarının beklenen genel sözleşmeyi açığa çıkardığını doğrulayın. plugin-sdk/channel-test-helpers içinden içe aktarın |
formatEnvelopeTimestamp | Belirlenimci zarf zaman damgalarını biçimlendirin. plugin-sdk/channel-test-helpers içinden içe aktarın |
expectPairingReplyText | Kanal eşleme yanıt metnini doğrulayın ve kodunu ayıklayın. plugin-sdk/channel-test-helpers içinden içe aktarın |
describePluginRegistrationContract | Plugin kayıt sözleşmesi kontrollerini yükleyin. plugin-sdk/plugin-test-contracts içinden içe aktarın |
registerSingleProviderPlugin | Yükleyici smoke testlerinde bir sağlayıcı Plugin kaydedin. plugin-sdk/plugin-test-runtime içinden içe aktarın |
registerProviderPlugin | Bir Plugin’den tüm sağlayıcı türlerini yakalayın. plugin-sdk/plugin-test-runtime içinden içe aktarın |
registerProviderPlugins | Birden çok Plugin genelindeki sağlayıcı kayıtlarını yakalayın. plugin-sdk/plugin-test-runtime içinden içe aktarın |
requireRegisteredProvider | Bir sağlayıcı koleksiyonunun bir kimlik içerdiğini doğrulayın. plugin-sdk/plugin-test-runtime içinden içe aktarın |
createRuntimeEnv | Mock’lanmış bir CLI/Plugin çalışma zamanı ortamı oluşturun. plugin-sdk/plugin-test-runtime içinden içe aktarın |
createPluginSetupWizardStatus | Kanal Plugin’leri için kurulum durumu yardımcılarını oluşturun. plugin-sdk/plugin-test-runtime içinden içe aktarın |
describeOpenAIProviderRuntimeContract | Sağlayıcı ailesi çalışma zamanı sözleşme kontrollerini yükleyin. plugin-sdk/provider-test-contracts içinden içe aktarın |
expectPassthroughReplayPolicy | Sağlayıcı replay ilkelerinin sağlayıcının sahip olduğu araçları ve meta verileri aynen geçirdiğini doğrulayın. plugin-sdk/provider-test-contracts içinden içe aktarın |
runRealtimeSttLiveTest | Paylaşılan ses fikstürleriyle canlı gerçek zamanlı STT sağlayıcı testi çalıştırın. plugin-sdk/provider-test-contracts içinden içe aktarın |
normalizeTranscriptForMatch | Bulanık doğrulamalardan önce canlı transkript çıktısını normalleştirin. plugin-sdk/provider-test-contracts içinden içe aktarın |
expectExplicitVideoGenerationCapabilities | Video sağlayıcılarının açık üretim modu yetenekleri bildirdiğini doğrulayın. plugin-sdk/provider-test-contracts içinden içe aktarın |
expectExplicitMusicGenerationCapabilities | Müzik sağlayıcılarının açık üretim/düzenleme yetenekleri bildirdiğini doğrulayın. plugin-sdk/provider-test-contracts içinden içe aktarın |
mockSuccessfulDashscopeVideoTask | Başarılı bir DashScope uyumlu video görevi yanıtı yükleyin. plugin-sdk/provider-test-contracts içinden içe aktarın |
getProviderHttpMocks | İsteğe bağlı sağlayıcı HTTP/auth Vitest mock’larına erişin. plugin-sdk/provider-http-test-mocks içinden içe aktarın |
installProviderHttpMockCleanup | Her testten sonra sağlayıcı HTTP/auth mock’larını sıfırlayın. plugin-sdk/provider-http-test-mocks içinden içe aktarın |
installCommonResolveTargetErrorCases | Hedef çözümleme hata işleme için paylaşılan test vakaları. plugin-sdk/channel-target-testing içinden içe aktarın |
shouldAckReaction | Bir kanalın ack tepkisi ekleyip eklememesi gerektiğini denetleyin. plugin-sdk/channel-feedback içinden içe aktarın |
removeAckReactionAfterReply | Yanıt tesliminden sonra ack tepkisini kaldırın. plugin-sdk/channel-feedback içinden içe aktarın |
createTestRegistry | Kanal Plugin kayıt defteri fikstürü oluşturun. plugin-sdk/plugin-test-runtime veya plugin-sdk/channel-test-helpers içinden içe aktarın |
createEmptyPluginRegistry | Boş bir Plugin kayıt defteri fikstürü oluşturun. plugin-sdk/plugin-test-runtime veya plugin-sdk/channel-test-helpers içinden içe aktarın |
setActivePluginRegistry | Plugin çalışma zamanı testleri için bir kayıt defteri fikstürü yükleyin. plugin-sdk/plugin-test-runtime veya plugin-sdk/channel-test-helpers içinden içe aktarın |
createRequestCaptureJsonFetch | Medya yardımcı testlerinde JSON fetch isteklerini yakalayın. plugin-sdk/test-env içinden içe aktarın |
withServer | Tek kullanımlık yerel HTTP sunucusuna karşı testleri çalıştırın. plugin-sdk/test-env içinden içe aktarın |
createMockIncomingRequest | En küçük gelen HTTP istek nesnesi oluşturun. plugin-sdk/test-env içinden içe aktarın |
withFetchPreconnect | Preconnect hook’ları yüklenmiş olarak fetch testlerini çalıştırın. plugin-sdk/test-env içinden içe aktarın |
withEnv / withEnvAsync | Ortam değişkenlerini geçici olarak yamalayın. plugin-sdk/test-env içinden içe aktarın |
createTempHomeEnv / withTempHome / withTempDir | Yalıtılmış dosya sistemi test fikstürleri oluşturun. plugin-sdk/test-env içinden içe aktarın |
createMockServerResponse | En küçük HTTP sunucu yanıtı mock’u oluşturun. plugin-sdk/test-env içinden içe aktarın |
createCliRuntimeCapture | Testlerde CLI çalışma zamanı çıktısını yakalayın. plugin-sdk/test-fixtures içinden içe aktarın |
importFreshModule | Modül önbelleğini atlamak için yeni bir sorgu token’ı ile bir ESM modülünü içe aktarın. plugin-sdk/test-fixtures içinden içe aktarın |
bundledPluginRoot / bundledPluginFile | Paketlenmiş Plugin kaynak veya dist fikstür yollarını çözümleyin. plugin-sdk/test-fixtures içinden içe aktarın |
mockNodeBuiltinModule | Dar kapsamlı Node yerleşik Vitest mock’larını yükleyin. plugin-sdk/test-node-mocks içinden içe aktarın |
createSandboxTestContext | Sandbox test bağlamları oluşturun. plugin-sdk/test-fixtures içinden içe aktarın |
writeSkill | Skill fikstürleri yazın. plugin-sdk/test-fixtures içinden içe aktarın |
makeAgentAssistantMessage | Ajan transkript ileti fikstürleri oluşturun. plugin-sdk/test-fixtures içinden içe aktarın |
peekSystemEvents / resetSystemEventsForTest | Sistem olay fikstürlerini inceleyin ve sıfırlayın. plugin-sdk/test-fixtures içinden içe aktarın |
sanitizeTerminalText | Doğrulamalar için terminal çıktısını temizleyin. plugin-sdk/test-fixtures içinden içe aktarın |
countLines / hasBalancedFences | Parçalama çıktı biçimini doğrulayın. plugin-sdk/test-fixtures içinden içe aktarın |
runProviderCatalog | Test bağımlılıklarıyla bir sağlayıcı katalog hook’u yürütün |
resolveProviderWizardOptions | Sözleşme testlerinde sağlayıcı kurulum sihirbazı seçimlerini çözümleyin |
resolveProviderModelPickerEntries | Sözleşme testlerinde sağlayıcı model seçici girdilerini çözümleyin |
buildProviderPluginMethodChoice | Doğrulamalar için sağlayıcı sihirbazı seçim kimlikleri oluşturun |
setProviderWizardProvidersResolverForTest | Yalıtılmış testler için sağlayıcı sihirbazı sağlayıcılarını enjekte edin |
createProviderUsageFetch | Sağlayıcı kullanımını getirme için test sabitleri oluştur |
useFrozenTime / useRealTime | Zamana duyarlı testler için zamanlayıcıları dondur ve geri yükle. plugin-sdk/test-env içinden içe aktar |
createTestWizardPrompter | Sahte bir kurulum sihirbazı istem yöneticisi oluştur |
createRuntimeTaskFlow | Yalıtılmış çalışma zamanı görev akışı durumunu oluştur |
typedCases | Tablo güdümlü testler için değişmez türleri koru. plugin-sdk/test-fixtures içinden içe aktar |
src/plugins/contracts altında kalır. Yeni eklenti testlerini, geniş plugin-sdk/testing uyumluluk barrel’ını, repo src/** dosyalarını veya repo test/helpers/* köprülerini doğrudan içe aktarmak yerine plugin-sdk/plugin-test-api, plugin-sdk/channel-contract-testing, plugin-sdk/agent-runtime-test-contracts, plugin-sdk/channel-test-helpers, plugin-sdk/plugin-test-contracts, plugin-sdk/plugin-test-runtime, plugin-sdk/provider-test-contracts, plugin-sdk/provider-http-test-mocks, plugin-sdk/test-env ya da plugin-sdk/test-fixtures gibi belgelenmiş, odaklı bir SDK alt yolunda tutun.
Türler
Odaklı test alt yolları, test dosyalarında yararlı olan türleri de yeniden dışa aktarır:Test hedefi çözümleme
Kanal hedefi çözümlemesi için standart hata durumlarını eklemek üzereinstallCommonResolveTargetErrorCases kullanın:
Test kalıpları
Kayıt sözleşmelerini test etme
register(api) işlevine elle yazılmış bir api mock’u geçiren birim testleri, OpenClaw’ın yükleyici kabul kapılarını çalıştırmaz. Plugin’inizin bağımlı olduğu her kayıt yüzeyi için, özellikle hook’lar ve bellek gibi özel yetenekler için, en az bir yükleyici destekli smoke testi ekleyin.
Gerçek yükleyici, gerekli metadata eksik olduğunda veya bir plugin sahip olmadığı bir yetenek API’sini çağırdığında plugin kaydını başarısız kılar. Örneğin, api.registerHook(...) bir hook adı gerektirir ve api.registerMemoryCapability(...), plugin manifestinin veya dışa aktarılan girişin kind: "memory" bildirmesini gerektirir.
Çalışma zamanı yapılandırma erişimini test etme
Paketle gelen kanal plugin’lerini test ederkenopenclaw/plugin-sdk/channel-test-helpers içindeki paylaşılan plugin çalışma zamanı mock’unu tercih edin. Kullanımdan kaldırılmış runtime.config.loadConfig() ve runtime.config.writeConfigFile(...) mock’ları varsayılan olarak hata fırlatır; böylece testler, uyumluluk API’lerinin yeni kullanımını yakalar. Bu mock’ları yalnızca test açıkça eski uyumluluk davranışını kapsıyorsa geçersiz kılın.
Bir kanal plugin’ini birim test etme
Bir sağlayıcı plugin’ini birim test etme
Plugin çalışma zamanını mock’lama
createPluginRuntimeStore kullanan kod için testlerde çalışma zamanını mock’layın:
Örnek başına stub’larla test etme
Prototip mutasyonu yerine örnek başına stub’ları tercih edin:Sözleşme testleri (repo içi plugin’ler)
Paketle gelen plugin’lerde kayıt sahipliğini doğrulayan sözleşme testleri bulunur:- Hangi plugin’lerin hangi sağlayıcıları kaydettiği
- Hangi plugin’lerin hangi konuşma sağlayıcılarını kaydettiği
- Kayıt şeklinin doğruluğu
- Çalışma zamanı sözleşmesine uyum
Kapsamlı testleri çalıştırma
Belirli bir plugin için:Lint zorlaması (repo içi plugin’ler)
Repo içi plugin’ler içinpnpm check tarafından üç kural zorlanır:
- Monolitik kök içe aktarmalar yok —
openclaw/plugin-sdkkök barrel’ı reddedilir - Doğrudan
src/içe aktarmaları yok — plugin’ler../../src/öğesini doğrudan içe aktaramaz - Kendini 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 Kanal Plugin’leri — kanal plugin arayüzü
- SDK Sağlayıcı Plugin’leri — sağlayıcı plugin hook’ları
- Plugin Oluşturma — başlangıç kılavuzu