Testler
- Tam test kiti (suiteler, canlı, Docker): Testing
-
pnpm test:force: Varsayılan denetim portunu elinde tutan artakalmış gateway sürecini sonlandırır, ardından sunucu testleri çalışan bir örnekle çakışmasın diye yalıtılmış bir gateway portuyla tam Vitest paketini çalıştırır. Önceki bir gateway çalıştırması 18789 portunu dolu bıraktığında bunu kullanın. -
pnpm test:coverage: V8 kapsamıyla birim paketini çalıştırır (vitest.unit.config.tsüzerinden). Bu, tüm depo için tüm dosyaları kapsayan kapsam değil, yüklenmiş dosya birim kapsam geçididir. Eşikler satırlar/fonksiyonlar/ifadeler için %70, dallar için %55’tir.coverage.allfalse olduğu için geçit, her parçalanmış hat kaynak dosyasını kapsanmamış saymak yerine birim kapsam paketi tarafından yüklenen dosyaları ölçer. -
pnpm test:coverage:changed: Birim kapsamını yalnızcaorigin/mainsonrasındaki değişmiş dosyalar için çalıştırır. -
pnpm test:changed: Git’te değişen yolları, fark yalnızca yönlendirilebilir kaynak/test dosyalarına dokunuyorsa kapsamlı Vitest hatlarına genişletir. Yapılandırma/kurulum değişiklikleri, gerektiğinde bağlantı düzenlemeleri geniş çapta yeniden çalışsın diye yine yerel kök proje çalıştırmasına geri düşer. -
pnpm changed:lanes:origin/mainkarşısındaki farkın tetiklediği mimari hatları gösterir. -
pnpm check:changed:origin/mainkarşısındaki fark için akıllı changed geçidini çalıştırır. Çekirdek işi çekirdek test hatlarıyla, eklenti işini eklenti test hatlarıyla, yalnızca test işini sadece test typecheck/testleriyle çalıştırır, herkese açık Plugin SDK veya plugin-contract değişikliklerini eklenti doğrulamasına genişletir ve yalnızca release metadata sürüm artışlarını hedeflenmiş sürüm/yapılandırma/kök-bağımlılık denetimlerinde tutar. -
pnpm test: Açık dosya/dizin hedeflerini kapsamlı Vitest hatları üzerinden yönlendirir. Hedefsiz çalıştırmalar sabit shard grupları kullanır ve yerelde paralel yürütme için yaprak yapılandırmalara genişler; eklenti grubu her zaman tek bir dev kök proje süreci yerine eklenti başına shard yapılandırmalarına genişler. -
Tam ve eklenti shard çalıştırmaları
.artifacts/vitest-shard-timings.jsoniçinde yerel zamanlama verilerini günceller; sonraki çalıştırmalar bu zamanlamaları yavaş ve hızlı shard’ları dengelemek için kullanır. Yerel zamanlama artifact’ini yok saymak içinOPENCLAW_TEST_PROJECTS_TIMINGS=0ayarlayın. -
Seçili
plugin-sdkvecommandstest dosyaları artık yalnızcatest/setup.tstutan özel hafif hatlar üzerinden yönlendirilir; çalışma zamanı ağır durumlar mevcut hatlarında kalır. -
Seçili
plugin-sdkvecommandsyardımcı kaynak dosyaları ayrıcapnpm test:changedkomutunu bu hafif hatlardaki açık kardeş testlere eşler; böylece küçük yardımcı düzenlemeleri ağır çalışma zamanı destekli paketleri yeniden çalıştırmaz. -
auto-replyartık üç özel yapılandırmaya da bölünür (core,top-level,reply); böylece reply harness daha hafif top-level status/token/helper testlerine baskın çıkmaz. -
Temel Vitest yapılandırması artık varsayılan olarak
pool: "threads"veisolate: falsekullanır; paylaşılan yalıtımsız çalıştırıcı depo yapılandırmaları genelinde etkindir. -
pnpm test:channels,vitest.channels.config.tsdosyasını çalıştırır. -
pnpm test:extensionsvepnpm test extensionstüm extension/plugin shard’larını çalıştırır. Ağır kanal extension’ları ve OpenAI özel shard’lar olarak çalışır; diğer extension grupları toplu kalır. Tek bir paketlenmiş plugin hattı içinpnpm test extensions/<id>kullanın. -
pnpm test:perf:imports: Açık dosya/dizin hedefleri için kapsamlı hat yönlendirmesini kullanmaya devam ederken Vitest import-duration + import-breakdown raporlamasını etkinleştirir. -
pnpm test:perf:imports:changed: Aynı import profillemesi, ancak yalnızcaorigin/mainsonrasındaki değişmiş dosyalar için. -
pnpm test:perf:changed:bench -- --ref <git-ref>aynı commit edilmiş git farkı için yönlendirilmiş changed-mode yolunu yerel kök proje çalıştırmasına karşı kıyaslar. -
pnpm test:perf:changed:bench -- --worktreeönce commit etmeden mevcut worktree değişiklik kümesini kıyaslar. -
pnpm test:perf:profile:main: Vitest ana iş parçacığı için bir CPU profili yazar (.artifacts/vitest-main-profile). -
pnpm test:perf:profile:runner: Birim çalıştırıcı için CPU + heap profilleri yazar (.artifacts/vitest-runner-profile). -
Gateway entegrasyonu:
OPENCLAW_TEST_INCLUDE_GATEWAY=1 pnpm testveyapnpm test:gatewayile isteğe bağlı etkinleştirilir. -
pnpm test:e2e: Gateway uçtan uca smoke testlerini çalıştırır (çoklu örnek WS/HTTP/node eşleştirmesi). Varsayılan olarakvitest.e2e.config.tsiçinde uyarlamalı worker’larlathreads+isolate: falsekullanır;OPENCLAW_E2E_WORKERS=<n>ile ayarlayın ve ayrıntılı günlükler içinOPENCLAW_E2E_VERBOSE=1ayarlayın. -
pnpm test:live: Sağlayıcı canlı testlerini çalıştırır (minimax/zai). Atlananları çalıştırmak için API anahtarları veLIVE=1(veya sağlayıcıya özgü*_LIVE_TEST=1) gerekir. -
pnpm test:docker:openwebui: Docker’lı OpenClaw + Open WebUI başlatır, Open WebUI üzerinden oturum açar,/api/modelsdenetler, ardından/api/chat/completionsüzerinden gerçek proxy’lenmiş bir sohbet çalıştırır. Kullanılabilir bir canlı model anahtarı gerektirir (örneğin~/.profileiçindeki OpenAI), harici bir Open WebUI image’ı çeker ve normal birim/e2e paketleri gibi CI açısından kararlı olması beklenmez. -
pnpm test:docker:mcp-channels: Tohumlanmış bir Gateway kapsayıcısı veopenclaw mcp servebaşlatan ikinci bir istemci kapsayıcısı başlatır; ardından yönlendirilmiş konuşma keşfini, transcript okumalarını, ek meta verilerini, canlı olay kuyruğu davranışını, giden gönderim yönlendirmesini ve Claude tarzı kanal + izin bildirimlerini gerçek stdio köprüsü üzerinden doğrular. Claude bildirim doğrulaması ham stdio MCP çerçevelerini doğrudan okur; böylece smoke, köprünün gerçekten ne yaydığını yansıtır.
Yerel PR geçidi
Yerel PR land/geçit denetimleri için şunları çalıştırın:pnpm check:changedpnpm checkpnpm check:test-typespnpm buildpnpm testpnpm check:docs
pnpm test yoğun yüklü bir hostta dalgalanırsa, bunu bir regresyon saymadan önce bir kez yeniden çalıştırın, sonra pnpm test <path/to/test> ile yalıtın. Bellek kısıtlı host’lar için şunları kullanın:
OPENCLAW_VITEST_MAX_WORKERS=1 pnpm testOPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/tmp/openclaw-vitest-cache pnpm test:changed
Model gecikme kıyası (yerel anahtarlar)
Betik:scripts/bench-model.ts
Kullanım:
source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10- İsteğe bağlı env:
MINIMAX_API_KEY,MINIMAX_BASE_URL,MINIMAX_MODEL,ANTHROPIC_API_KEY - Varsayılan istem: “Reply with a single word: ok. No punctuation or extra text.”
- minimax medyan 1279ms (en düşük 1114, en yüksek 2431)
- opus medyan 2454ms (en düşük 1224, en yüksek 3170)
CLI başlangıç kıyası
Betik:scripts/bench-cli-startup.ts
Kullanım:
pnpm test:startup:benchpnpm test:startup:bench:smokepnpm test:startup:bench:savepnpm test:startup:bench:updatepnpm test:startup:bench:checkpnpm tsx scripts/bench-cli-startup.tspnpm tsx scripts/bench-cli-startup.ts --runs 12pnpm tsx scripts/bench-cli-startup.ts --preset realpnpm tsx scripts/bench-cli-startup.ts --preset real --case status --case gatewayStatus --runs 3pnpm tsx scripts/bench-cli-startup.ts --entry openclaw.mjs --entry-secondary dist/entry.js --preset allpnpm tsx scripts/bench-cli-startup.ts --preset all --output .artifacts/cli-startup-bench-all.jsonpnpm tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --output .artifacts/cli-startup-bench-smoke.jsonpnpm tsx scripts/bench-cli-startup.ts --preset real --cpu-prof-dir .artifacts/cli-cpupnpm tsx scripts/bench-cli-startup.ts --json
startup:--version,--help,health,health --json,status --json,statusreal:health,status,status --json,sessions,sessions --json,agents list --json,gateway status,gateway status --json,gateway health --json,config get gateway.portall: her iki ön ayar
sampleCount, ortalama, p50, p95, min/max, exit-code/signal dağılımı ve en yüksek RSS özetlerini içerir. İsteğe bağlı --cpu-prof-dir / --heap-prof-dir, çalıştırma başına V8 profilleri yazar; böylece zamanlama ve profil yakalama aynı harness’i kullanır.
Kaydedilmiş çıktı kuralları:
pnpm test:startup:bench:smoke, hedefli smoke artifact’ini.artifacts/cli-startup-bench-smoke.jsoniçine yazarpnpm test:startup:bench:save, tam paket artifact’ini.artifacts/cli-startup-bench-all.jsoniçineruns=5vewarmup=1ile yazarpnpm test:startup:bench:update, depo içinde tutulan temel fixture’ıtest/fixtures/cli-startup-bench.jsoniçinderuns=5vewarmup=1ile yeniler
test/fixtures/cli-startup-bench.jsonpnpm test:startup:bench:updateile yenileyin- Geçerli sonuçları fixture ile karşılaştırmak için
pnpm test:startup:bench:checkkullanın
Onboarding E2E (Docker)
Docker isteğe bağlıdır; buna yalnızca kapsayıcılaştırılmış onboarding smoke testleri için ihtiyaç vardır. Temiz bir Linux kapsayıcısında tam soğuk başlangıç akışı:openclaw health çalıştırır.
QR içe aktarma smoke (Docker)
qrcode-terminal bileşeninin desteklenen Docker Node çalışma zamanlarında (varsayılan Node 24, uyumlu Node 22) yüklendiğini doğrular: