Release and CI
Testler
-
Tam test kiti (test paketleri, canlı, Docker): Test Etme
-
Güncelleme ve Plugin paketi doğrulaması: Güncellemeleri ve Pluginleri test etme
-
pnpm test:force: Varsayılan denetim portunu tutan kalmış Gateway süreçlerini sonlandırır, ardından çalışan bir örnekle sunucu testleri çakışmasın diye tam Vitest paketini yalıtılmış bir Gateway portuyla çalıştırır. Önceki bir Gateway çalıştırması port 18789’u dolu bıraktığında bunu kullanın. -
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, transkript okumalarını, ek meta verilerini, canlı olay kuyruğu davranışını, dışa giden gönderim yönlendirmesini ve gerçek stdio köprüsü üzerinden Claude tarzı kanal + izin bildirimlerini doğrular. Claude bildirim doğrulaması, ham stdio MCP çerçevelerini doğrudan okur; böylece smoke, köprünün gerçekte ne yaydığını yansıtır. -
pnpm test:docker:upgrade-survivor: Paketlenmiş OpenClaw tarball'ını kirli bir eski kullanıcı fikstürünün üzerine kurar, canlı sağlayıcı veya kanal anahtarları olmadan paket güncellemesini ve etkileşimsiz doctor'ı çalıştırır, ardından bir loopback Gateway başlatır ve aracıların, kanal yapılandırmasının, Plugin izin listelerinin, çalışma alanı/oturum dosyalarının, eski kalmış legacy Plugin bağımlılık durumunun, başlatmanın ve RPC durumunun korunduğunu denetler. -
pnpm test:docker:published-upgrade-survivor: Varsayılan olarakopenclaw@latestkurar, canlı sağlayıcı veya kanal anahtarları olmadan gerçekçi mevcut kullanıcı dosyalarını tohumlar, bu temel durumu yerleşik biropenclaw config setkomut tarifiyle yapılandırır, yayımlanmış kurulumu paketlenmiş OpenClaw tarball'ına günceller, etkileşimsiz doctor çalıştırır,.artifacts/upgrade-survivor/summary.jsonyazar, ardından bir loopback Gateway başlatır ve yapılandırılmış amaçların, çalışma alanı/oturum dosyalarının, eski kalmış Plugin yapılandırmasının ve legacy bağımlılık durumunun, başlatmanın,/healthz,/readyzve RPC durumunun korunduğunu veya temiz biçimde onarıldığını denetler. Tek bir temel durumuOPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECile geçersiz kılın,[email protected] [email protected] [email protected]gibiOPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECSile tam bir yerel matrisi genişletin veyaOPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issuesile senaryo fikstürleri ekleyin; reported-issues kümesi, yapılandırılmış harici OpenClaw Plugin'lerinin yükseltme sırasında otomatik olarak kurulduğunu doğrulamak içinconfigured-plugin-installsve yalnızca kaynak Plugin gölgelerinin başlatmayı bozmasını önlemek içinstale-source-plugin-shadowiçerir. Package Acceptance bunlarıpublished_upgrade_survivor_baseline,published_upgrade_survivor_baselinesvepublished_upgrade_survivor_scenariosolarak sunar ve Docker hatlarına tam paket belirtimlerini vermeden öncelast-stable-4veyaall-since-2026.4.23gibi meta temel durum belirteçlerini çözer. -
pnpm test:docker:update-migration: Varsayılan olarak[email protected]ile başlayarak, published-upgrade survivor donanımını yoğun temizlik gerektirenplugin-deps-cleanupsenaryosunda çalıştırır. AyrıUpdate Migrationiş akışı, bu hattıbaselines=all-since-2026.4.23ile genişletir; böylece.23ve sonrasındaki her kararlı yayımlanmış paket adaya güncellenir ve yapılandırılmış Plugin bağımlılığı temizliğini Full Release CI dışında kanıtlar. -
pnpm test:docker:plugins: Yerel yol,file:, hoist edilmiş bağımlılıklara sahip npm kayıt paketleri, git hareketli ref'leri, ClawHub fikstürleri, marketplace güncellemeleri ve Claude paketini etkinleştirme/inceleme için kurulum/güncelleme smoke'unu çalıştırır.
Yerel PR geçidi
Yerel PR land/gate denetimleri için şunu çalıştırın:
pnpm check:changedpnpm checkpnpm check:test-typespnpm buildpnpm testpnpm check:docs
pnpm test yüklü bir host üzerinde kesintili hata verirse, bunu bir regresyon olarak değerlendirmeden önce bir kez yeniden çalıştırın, ardından pnpm test <path/to/test> ile izole edin. Belleği kısıtlı host'lar için şunu kullanın:
OPENCLAW_VITEST_MAX_WORKERS=1 pnpm testOPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/tmp/openclaw-vitest-cache pnpm test:changed
Model gecikme kıyaslaması (yerel anahtarlar)
Betik: scripts/bench-model.ts
Kullanım:
source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10- İsteğe bağlı ortam değişkenleri:
MINIMAX_API_KEY,MINIMAX_BASE_URL,MINIMAX_MODEL,ANTHROPIC_API_KEY - Varsayılan prompt: "Tek bir sözcükle yanıt ver: ok. Noktalama işareti veya fazladan metin yok."
Son çalıştırma (2025-12-31, 20 çalıştırma):
- minimax medyan 1279 ms (min 1114, maks 2431)
- opus medyan 2454 ms (min 1224, maks 3170)
CLI başlangıç kıyaslaması
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 --preset real --case tasksJson --case tasksListJson --case tasksAuditJson --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
Ön ayarlar:
startup:--version,--help,health,health --json,status --json,statusreal:health,status,status --json,sessions,sessions --json,tasks --json,tasks list --json,tasks audit --json,agents list --json,gateway status,gateway status --json,gateway health --json,config get gateway.portall: iki ön ayar da
Çıktı, her komut için sampleCount, ortalama, p50, p95, min/maks, çıkış kodu/sinyal dağılımı ve maks RSS özetlerini içerir. İsteğe bağlı --cpu-prof-dir / --heap-prof-dir, zamanlama ve profil yakalamanın aynı harness'i kullanması için her çalıştırma başına V8 profilleri yazar.
Kaydedilmiş çıktı kuralları:
pnpm test:startup:bench:smoke, hedefli smoke artifact'ini.artifacts/cli-startup-bench-smoke.jsonkonumuna yazarpnpm test:startup:bench:save,runs=5vewarmup=1kullanarak tam suite artifact'ini.artifacts/cli-startup-bench-all.jsonkonumuna yazarpnpm test:startup:bench:update,runs=5vewarmup=1kullanarak depoya işlenmiş baseline fixture'ınıtest/fixtures/cli-startup-bench.jsonkonumunda yeniler
Depoya işlenmiş fixture:
test/fixtures/cli-startup-bench.jsonpnpm test:startup:bench:updateile yenileyin- Geçerli sonuçları fixture ile
pnpm test:startup:bench:checkkullanarak karşılaştırın
Onboarding E2E (Docker)
Docker isteğe bağlıdır; bu yalnızca container içinde çalışan onboarding smoke testleri için gerekir.
Temiz bir Linux container'ında tam cold-start akışı:
scripts/e2e/onboard-docker.sh
Bu betik etkileşimli sihirbazı bir pseudo-tty üzerinden yürütür, config/workspace/session dosyalarını doğrular, ardından Gateway'i başlatır ve openclaw health çalıştırır.
QR içe aktarma smoke testi (Docker)
Bakımı yapılan QR runtime yardımcısının desteklenen Docker Node runtime'ları altında yüklendiğinden emin olur (Node 24 varsayılan, Node 22 uyumlu):
pnpm test:docker:qr