Skip to main content
OpenClaw Pluginleri için test yardımcı programları, kalıpları ve lint uygulamasına ilişkin referans.
Test örnekleri mi arıyorsunuz? Nasıl yapılır kılavuzları, ayrıntılı test örnekleri içerir: Kanal Plugin testleri ve Sağlayıcı Plugin testleri.

Test yardımcı programları

Bu alt yollar, OpenClaw’ın kendi paketle birlikte sunulan Plugin testleri için depoya yerel kaynak giriş noktalarıdır. Üçüncü taraf Pluginler için yayımlanmış package.json dışa aktarımları değildir ve Vitest’i veya yalnızca depoda bulunan diğer test bağımlılıklarını içe aktarabilirler.
Paketle birlikte sunulan Plugin testleri için bu odaklanmış alt yolları kullanın. Önceki openclaw/plugin-sdk/testing barrel’ı depoya yereldi, yayımlanan paketlerin dışında tutuluyordu ve kaldırıldı. Önceki openclaw/plugin-sdk/test-utils takma adı da onunla birlikte kaldırıldı. pnpm run lint:plugins:no-extension-test-core-imports (scripts/check-no-extension-test-core-imports.ts) uzantı testlerinin yukarıdaki odaklanmış test alt yollarını kullanmasını sağlar.

Kullanılabilir dışa aktarımlar

Paketle birlikte sunulan Plugin sözleşme paketleri ayrıca yalnızca test amaçlı kayıt defteri, manifest, herkese açık yapıt ve çalışma zamanı fikstürü yardımcıları için bu SDK test alt yollarını kullanır. Paketle birlikte sunulan OpenClaw envanterine bağımlı olan yalnızca çekirdeğe yönelik paketler ise bunun yerine src/plugins/contracts altında kalır.

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ümlemesine yönelik standart hata durumlarını eklemek için installCommonResolveTargetErrorCases kullanın:

Test kalıpları

Kayıt sözleşmelerini test etme

El ile yazılmış bir api taklidini register(api) öğesine ileten birim testleri, OpenClaw’ın yükleyici kabul denetimlerini çalıştırmaz. Plugin’inizin bağımlı olduğu her kayıt yüzeyi için, özellikle kancalar ve bellek gibi özel yetenekler için yükleyici destekli en az bir duman testi ekleyin. Gerekli meta veriler eksik olduğunda veya bir Plugin sahip olmadığı bir yetenek API’sini çağırdığında gerçek yükleyici Plugin kaydını başarısız kılar. Örneğin, api.registerHook(...) bir kanca adı gerektirir ve api.registerMemoryCapability(...), Plugin manifestinin veya dışa aktarılan girdinin kind: "memory" bildirmesini gerektirir.

Çalışma zamanı yapılandırmasına erişimi test etme

openclaw/plugin-sdk/plugin-test-runtime içindeki paylaşılan Plugin çalışma zamanı taklidini tercih edin. Çalışma zamanı yapılandırma yardımcıları, geçerli anlık görüntü ve değişiklik API’lerini modeller.

Bir kanal Plugin’ini birim testiyle sınama

Bir sağlayıcı Plugin’ini birim testiyle sınama

Plugin çalışma zamanını taklit etme

createPluginRuntimeStore kullanan kod için testlerde çalışma zamanını taklit edin:

Örnek başına saplamalarla test etme

Prototip değişikliği yerine örnek başına saplamaları tercih edin:

Sözleşme testleri (depo içi Plugin’ler)

Paketle birlikte sunulan Plugin’lerin kayıt sahipliğini doğrulayan sözleşme testleri vardır:
Bu testler şunları doğrular:
  • 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 biçiminin doğruluğu
  • Çalışma zamanı sözleşmesine uygunluk

Kapsamlı testleri çalıştırma

Belirli bir Plugin için:
Yalnızca sözleşme testleri için:

Lint uygulaması (depo içi Plugin’ler)

scripts/run-additional-boundary-checks.mjs, CI’da bir dizi lint:plugins:* içe aktarma sınırı denetimi çalıştırır; bunların her biri yerel olarak bağımsız biçimde de çalıştırılabilir: Harici Plugin’ler bu lint kurallarına tabi değildir, ancak aynı kalıpların izlenmesi önerilir.

Test yapılandırması

OpenClaw, bilgilendirici V8 kapsam raporlamasıyla Vitest 4 kullanır. Plugin testleri için:
Yerel çalıştırmalar bellek baskısına neden olursa:

İlgili