Testler
OpenClaw’da üç Vitest paketi (unit/integration, e2e, canlı) ve küçük bir Docker çalıştırıcı seti vardır. Bu belge bir “nasıl test ediyoruz” kılavuzudur:- Hangi paketi çalıştırmalıyım?
- Yaygın iş akışları için hangi komutların çalıştırılacağı (yerel, push öncesi, hata ayıklama)
- Canlı testlerin kimlik bilgilerini nasıl keşfettiği ve model/sağlayıcıları nasıl seçtiği
- Gerçek dünyadaki model/sağlayıcı sorunları için regresyonların nasıl ekleneceği
Hızlı başlangıç
Çoğu gün:- Tam kapı (push öncesi beklenen):
pnpm build && pnpm check && pnpm test
- Kapsam kapısı:
pnpm test:coverage - E2E paketi:
pnpm test:e2e
- Canlı paket (modeller + gateway araç/görüntü probları):
pnpm test:live
Test paketleri (nerede ne çalışır)
Paketleri “artan gerçekçilik” (ve artan oynaklık/maliyet) olarak düşünün:Unit / integration (varsayılan)
- Komut:
pnpm test - Config:
scripts/test-parallel.mjs(vitest.unit.config.ts,vitest.extensions.config.ts,vitest.gateway.config.tsçalıştırır) - Dosyalar:
src/**/*.test.ts - Kapsam:
- Saf unit testleri
- Süreç içi entegrasyon testleri (gateway kimlik doğrulama, yönlendirme, araçlar, ayrıştırma, yapılandırma)
- Bilinen hatalar için deterministik regresyonlar
- Beklentiler:
- CI’da çalışır
- Gerçek anahtarlar gerekmez
- Hızlı ve kararlı olmalıdır
- Havuz notu:
- OpenClaw, daha hızlı birim shard’ları için Node 22/23 üzerinde Vitest
vmForkskullanır. - Node 24+ sürümünde OpenClaw, Node VM bağlantı hatalarından (
ERR_VM_MODULE_LINK_FAILURE/module is already linked) kaçınmak için otomatik olarak normalforksmoduna geri döner. OPENCLAW_TEST_VM_FORKS=0(forkszorla ) veyaOPENCLAW_TEST_VM_FORKS=1(vmForkszorla ) ile manuel olarak geçersiz kılın.
- OpenClaw, daha hızlı birim shard’ları için Node 22/23 üzerinde Vitest
E2E (gateway duman testi)
- Komut:
pnpm test:e2e - Yapılandırma:
vitest.e2e.config.ts - Dosyalar:
src/**/*.e2e.test.ts - Çalışma zamanı varsayılanları:
- Daha hızlı dosya başlatma için Vitest
vmForkskullanır. - Uyarlanabilir worker’lar kullanır (CI: 2-4, yerel: 4-8).
- Konsol G/Ç yükünü azaltmak için varsayılan olarak sessiz modda çalışır.
- Daha hızlı dosya başlatma için Vitest
- Yararlı geçersiz kılmalar:
- Worker sayısını zorlamak için
OPENCLAW_E2E_WORKERS=<n>(en fazla 16). - Ayrıntılı konsol çıktısını yeniden etkinleştirmek için
OPENCLAW_E2E_VERBOSE=1.
- Worker sayısını zorlamak için
- Kapsam:
- Çok örnekli gateway uçtan uca davranışı
- WebSocket/HTTP yüzeyleri, düğüm eşleştirme ve daha ağır ağ işlemleri
- Beklentiler:
- CI’da çalışır (hatta boru hattında etkinleştirildiğinde)
- Gerçek anahtarlar gerekmez
- Unit testlerine göre daha fazla hareketli parça (daha yavaş olabilir)
Canlı (gerçek sağlayıcılar + gerçek modeller)
- Komut:
pnpm test:live - Yapılandırma:
vitest.live.config.ts - Dosyalar:
src/**/*.live.test.ts - Varsayılan:
pnpm test:livetarafından etkin (OPENCLAW_LIVE_TEST=1ayarlanır) - Kapsam:
- “Bu sağlayıcı/model bugün gerçek kimlik bilgileriyle gerçekten çalışıyor mu?”
- Sağlayıcı format değişiklikleri, araç çağırma tuhaflıkları, kimlik doğrulama sorunları ve oran sınırlaması davranışlarını yakalar
- Beklentiler:
- Tasarım gereği CI’da kararlı değildir (gerçek ağlar, gerçek sağlayıcı politikaları, kotalar, kesintiler)
- Maliyetlidir / oran sınırlarını kullanır
- “Her şey” yerine daraltılmış alt kümeler çalıştırmayı tercih edin
- Canlı çalıştırmalar, eksik API anahtarlarını almak için
~/.profile’i kaynak alır - Anthropic anahtar rotasyonu:
OPENCLAW_LIVE_ANTHROPIC_KEYS="sk-...,sk-..."(veyaOPENCLAW_LIVE_ANTHROPIC_KEY=sk-...) ya da birden çokANTHROPIC_API_KEY*değişkeni ayarlayın; testler oran sınırlarında yeniden dener
görüntü yoklamasını çalıştırmak için.
Bu karar tablosunu kullanın:- Mantık/test düzenliyorsanız:
pnpm test(çok şey değiştirdiysenizpnpm test:coverage) - Gateway ağ iletişimi / WS protokolü / eşleştirme ile oynuyorsanız:
pnpm test:e2eekleyin - “Botum çalışmıyor” / sağlayıcıya özgü hatalar / araç çağırma hata ayıklaması: daraltılmış bir
pnpm test:liveçalıştırın
Canlı: model duman testi (profil anahtarları)
Canlı testler, hataları izole edebilmek için iki katmana ayrılır:- “Doğrudan model”, verilen anahtarla sağlayıcı/modelin en azından yanıt verebildiğini söyler.
- “Gateway duman testi”, tam gateway+ajan hattının bu model için çalıştığını söyler (oturumlar, geçmiş, araçlar, sandbox politikası vb.).
Katman 1: Doğrudan model tamamlaması (gateway yok)
- Test:
src/agents/models.profiles.live.test.ts - Amaç:
- Keşfedilen modelleri listelemek
- Kimlik bilgisine sahip olduğunuz modelleri seçmek için
getApiKeyForModelkullanmak - Model başına küçük bir tamamlama (ve gerektiğinde hedefli regresyonlar) çalıştırmak
- Nasıl etkinleştirilir:
pnpm test:live(veya Vitest’i doğrudan çağırıyorsanızOPENCLAW_LIVE_TEST=1)
- Bu paketi gerçekten çalıştırmak için
OPENCLAW_LIVE_MODELS=modern(veya modern için takma adall) ayarlayın; aksi haldepnpm test:live’yi gateway duman testine odaklı tutmak için atlanır - Modeller nasıl seçilir:
- Modern izin listesini çalıştırmak için
OPENCLAW_LIVE_MODELS=modern(Opus/Sonnet/Haiku 4.5, GPT-5.x + Codex, Gemini 3, GLM 4.7, MiniMax M2.1, Grok 4) OPENCLAW_LIVE_MODELS=allmodern izin listesi için bir takma addır- veya
OPENCLAW_LIVE_MODELS="openai/gpt-5.2,anthropic/claude-opus-4-6,..."(virgülle ayrılmış izin listesi)
- Modern izin listesini çalıştırmak için
- Sağlayıcılar nasıl seçilir:
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(virgülle ayrılmış izin listesi)
- Anahtarlar nereden gelir:
- Varsayılan: profil deposu ve ortam değişkeni yedekleri
- Yalnızca profil deposunu zorlamak için
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1ayarlayın
- Neden var:
- “Sağlayıcı API’si bozuk / anahtar geçersiz” ile “gateway ajan hattı bozuk” ayrımını yapar
- Küçük, izole regresyonlar içerir (örnek: OpenAI Responses/Codex Responses akıl yürütme tekrar oynatma + araç çağırma akışları)
Katman 2: Gateway + geliştirme ajanı duman testi (“@openclaw” gerçekte ne yapar)
- Test:
src/gateway/gateway-models.profiles.live.test.ts - Amaç:
- Süreç içi bir gateway başlatmak
- Bir
agent:dev:*oturumu oluşturmak/yamalamak (çalıştırma başına model geçersiz kılma) - Anahtarı olan modelleri dolaşıp şunları doğrulamak:
- “anlamlı” yanıt (araç yok)
- gerçek bir araç çağrısının çalışması (okuma probu)
- isteğe bağlı ek araç probları (çalıştırma+okuma probu)
- OpenAI regresyon yollarının (yalnızca araç çağrısı → takip) çalışmaya devam etmesi
- Prob ayrıntıları (hataları hızlıca açıklayabilmeniz için):
readprobu: test, çalışma alanında bir nonce dosyası yazar ve ajandan onureadve nonce’u geri yankılamasını ister.exec+readprobu: test, ajandan bir nonce’u geçici bir dosyayaexec-yazmasını, ardından onureadister.- Görüntü probu: test, üretilmiş bir PNG’yi (kedi + rastgele kod) ekler ve modelden
cat <CODE>döndürmesini bekler. - Uygulama referansı:
src/gateway/gateway-models.profiles.live.test.tsvesrc/gateway/live-image-probe.ts.
- Nasıl etkinleştirilir:
pnpm test:live(veya Vitest’i doğrudan çağırıyorsanızOPENCLAW_LIVE_TEST=1)
- Modeller nasıl seçilir:
- Varsayılan: modern izin listesi (Opus/Sonnet/Haiku 4.5, GPT-5.x + Codex, Gemini 3, GLM 4.7, MiniMax M2.1, Grok 4)
OPENCLAW_LIVE_GATEWAY_MODELS=allmodern izin listesi için bir takma addır- Ya da daraltmak için
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(veya virgülle ayrılmış liste) ayarlayın
- Sağlayıcılar nasıl seçilir (“OpenRouter her şey”den kaçının):
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(virgülle ayrılmış izin listesi)
- Araç + görüntü probları bu canlı testte her zaman açıktır:
readprobu +exec+readprobu (araç stresi)- Görüntü probu, model görüntü girdisi desteği bildirdiğinde çalışır
- Akış (üst düzey):
- Test, “CAT” + rastgele kod içeren küçük bir PNG üretir (
src/gateway/live-image-probe.ts) - Bunu
agentattachments: [{ mimeType: "image/png", content: "<base64>" }]üzerinden gönderir - Gateway, ekleri
images[]içine ayrıştırır (src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - Gömülü ajan, modele çok kipli bir kullanıcı mesajı iletir
- Doğrulama: yanıt
cat+ kodu içerir (OCR toleransı: küçük hatalara izin verilir)
- Test, “CAT” + rastgele kod içeren küçük bir PNG üretir (
provider/model kimliklerini) görmek için şunu çalıştırın:
Canlı: Anthropic setup-token duman testi
- Test:
src/agents/anthropic.setup-token.live.test.ts - Amaç: Claude Code CLI setup-token’ının (veya yapıştırılmış bir setup-token profilinin) bir Anthropic istemini tamamlayabildiğini doğrulamak.
- Etkinleştirme:
pnpm test:live(veya Vitest’i doğrudan çağırıyorsanızOPENCLAW_LIVE_TEST=1)OPENCLAW_LIVE_SETUP_TOKEN=1
- Belirteç kaynakları (birini seçin):
- Profil:
OPENCLAW_LIVE_SETUP_TOKEN_PROFILE=anthropic:setup-token-test - Ham belirteç:
OPENCLAW_LIVE_SETUP_TOKEN_VALUE=sk-ant-oat01-...
- Profil:
- Model geçersiz kılma (isteğe bağlı):
OPENCLAW_LIVE_SETUP_TOKEN_MODEL=anthropic/claude-opus-4-6
Canlı: CLI arka uç duman testi (Claude Code CLI veya diğer yerel CLI’ler)
- Test:
src/gateway/gateway-cli-backend.live.test.ts - Amaç: Varsayılan yapılandırmanıza dokunmadan, yerel bir CLI arka ucu kullanarak Gateway + ajan hattını doğrulamak.
- Etkinleştirme:
pnpm test:live(veya Vitest’i doğrudan çağırıyorsanızOPENCLAW_LIVE_TEST=1)OPENCLAW_LIVE_CLI_BACKEND=1
- Varsayılanlar:
- Model:
claude-cli/claude-sonnet-4-5 - Komut:
claude - Argümanlar:
["-p","--output-format","json","--dangerously-skip-permissions"]
- Model:
- Geçersiz kılmalar (isteğe bağlı):
OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-opus-4-6"OPENCLAW_LIVE_CLI_BACKEND_MODEL="codex-cli/gpt-5.3-codex"OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/claude"OPENCLAW_LIVE_CLI_BACKEND_ARGS='["-p","--output-format","json","--permission-mode","bypassPermissions"]'OPENCLAW_LIVE_CLI_BACKEND_CLEAR_ENV='["ANTHROPIC_API_KEY","ANTHROPIC_API_KEY_OLD"]'- Gerçek bir görüntü eki göndermek için
OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1(yollar isteme enjekte edilir). - Görüntü dosya yollarını isteme enjekte etmek yerine CLI argümanı olarak geçirmek için
OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image". IMAGE_ARGayarlı olduğunda görüntü argümanlarının nasıl geçirileceğini denetlemek içinOPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(veya"list").- İkinci bir tur göndermek ve devam akışını doğrulamak için
OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1.
- Claude Code CLI MCP yapılandırmasını etkin tutmak için
OPENCLAW_LIVE_CLI_BACKEND_DISABLE_MCP_CONFIG=0(varsayılan, MCP yapılandırmasını geçici boş bir dosya ile devre dışı bırakır).
Önerilen canlı tarifler
Dar ve açık izin listeleri en hızlı ve en az oynaktır:-
Tek model, doğrudan (gateway yok):
OPENCLAW_LIVE_MODELS="openai/gpt-5.2" pnpm test:live src/agents/models.profiles.live.test.ts
-
Tek model, gateway duman testi:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Birden çok sağlayıcıda araç çağırma:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,zai/glm-4.7,minimax/minimax-m2.1" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Google odak (Gemini API anahtarı + Antigravity):
- Gemini (API anahtarı):
OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3-flash-preview" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts - Antigravity (OAuth):
OPENCLAW_LIVE_GATEWAY_MODELS="google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-pro-high" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
- Gemini (API anahtarı):
google/...Gemini API’sini kullanır (API anahtarı).google-antigravity/...Antigravity OAuth köprüsünü kullanır (Cloud Code Assist tarzı ajan uç noktası).google-gemini-cli/...makinenizdeki yerel Gemini CLI’yi kullanır (ayrı kimlik doğrulama + araçlama tuhaflıkları).- Gemini API vs Gemini CLI:
- API: OpenClaw, Google’ın barındırılan Gemini API’sini HTTP üzerinden çağırır (API anahtarı / profil kimlik doğrulaması); çoğu kullanıcının “Gemini” derken kastettiği budur.
- CLI: OpenClaw, yerel bir
geminiikilisini kabuk üzerinden çağırır; kendi kimlik doğrulaması vardır ve farklı davranabilir (akış/araç desteği/sürüm uyumsuzluğu).
Canlı: model matrisi (neyi kapsıyoruz)
Sabit bir “CI model listesi” yoktur (canlı testler isteğe bağlıdır), ancak bunlar anahtarları olan bir geliştirici makinesinde düzenli olarak kapsanması önerilen modellerdir.Modern duman seti (araç çağırma + görüntü)
Çalışır durumda kalmasını beklediğimiz “yaygın modeller” çalıştırmasıdır:- OpenAI (Codex olmayan):
openai/gpt-5.2(isteğe bağlı:openai/gpt-5.1) - OpenAI Codex:
openai-codex/gpt-5.3-codex(isteğe bağlı:openai-codex/gpt-5.3-codex-codex) - Anthropic:
anthropic/claude-opus-4-6(veyaanthropic/claude-sonnet-4-5) - Google (Gemini API):
google/gemini-3-pro-previewvegoogle/gemini-3-flash-preview(eski Gemini 2.x modellerinden kaçının) - Google (Antigravity):
google-antigravity/claude-opus-4-6-thinkingvegoogle-antigravity/gemini-3-flash - Z.AI (GLM):
zai/glm-4.7 - MiniMax:
minimax/minimax-m2.1
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.3-codex,anthropic/claude-opus-4-6,google/gemini-3-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-flash,zai/glm-4.7,minimax/minimax-m2.1" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
Temel çizgi: araç çağırma (Okuma + isteğe bağlı Çalıştırma)
Her sağlayıcı ailesinden en az birini seçin:- OpenAI:
openai/gpt-5.2(veyaopenai/gpt-5-mini) - Anthropic:
anthropic/claude-opus-4-6(veyaanthropic/claude-sonnet-4-5) - Google:
google/gemini-3-flash-preview(veyagoogle/gemini-3-pro-preview) - Z.AI (GLM):
zai/glm-4.7 - MiniMax:
minimax/minimax-m2.1
- xAI:
xai/grok-4(veya mevcut en güncel) - Mistral:
mistral/… (etkinleştirdiğiniz “tools” yetenekli bir model seçin) - Cerebras:
cerebras/… (erişiminiz varsa) - LM Studio:
lmstudio/… (yerel; araç çağırma API moduna bağlıdır)
Görsel: görüntü gönderimi (ek → çok kipli mesaj)
Görüntü probunu çalıştırmak içinOPENCLAW_LIVE_GATEWAY_MODELS içinde en az bir görüntü destekli model (Claude/Gemini/OpenAI görsel varyantları vb.) Kullanışlı ortam değişkenleri:
Toplayıcılar / alternatif gateway’ler
Anahtarlarınız etkinse, şu yollarla da test etmeyi destekliyoruz:- OpenRouter:
openrouter/...(yüzlerce model; araç+görüntü destekli adayları bulmak içinopenclaw models scankullanın) - OpenCode Zen:
opencode/...(OPENCODE_API_KEY/OPENCODE_ZEN_API_KEYile kimlik doğrulama)
- Yerleşik:
openai,openai-codex,anthropic,google,google-vertex,google-antigravity,google-gemini-cli,zai,openrouter,opencode,xai,groq,cerebras,mistral,github-copilot models.providersüzerinden (özel uç noktalar):minimax(bulut/API) ve OpenAI/Anthropic uyumlu herhangi bir proxy (LM Studio, vLLM, LiteLLM vb.)
discoverModels(...)’nin döndürdüğü her şey + mevcut anahtarlarınızdır.
Kimlik bilgileri (asla commit etmeyin)
Canlı testler, kimlik bilgilerini CLI ile aynı şekilde keşfeder. Pratik sonuçlar:- CLI çalışıyorsa, canlı testler de aynı anahtarları bulmalıdır.
-
Bir canlı test “kimlik bilgisi yok” diyorsa,
openclaw models list/ model seçimini nasıl hata ayıklıyorsanız aynı şekilde hata ayıklayın. -
Profil deposu:
~/.openclaw/credentials/(tercih edilir; testlerde “profil anahtarları”nın anlamı budur) -
Yapılandırma:
~/.openclaw/openclaw.json(veyaOPENCLAW_CONFIG_PATH)
~/.profile’inizde dışa aktarılmış) güvenmek istiyorsanız, yerel testleri source ~/.profile’den sonra çalıştırın veya aşağıdaki Docker çalıştırıcılarını kullanın (kapsayıcıya ~/.profile bağlayabilirler).
Deepgram canlı (ses deşifre)
- Test:
src/media-understanding/providers/deepgram/audio.live.test.ts - Etkinleştirme:
DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live src/media-understanding/providers/deepgram/audio.live.test.ts
Docker çalıştırıcıları (isteğe bağlı “Linux’ta çalışıyor” kontrolleri)
Bunlar, depo Docker imajı içindepnpm test:live çalıştırır; yerel yapılandırma dizininizi ve çalışma alanını bağlar (bağlandıysa ~/.profile’yi kaynak alır):
- Doğrudan modeller:
pnpm test:docker:live-models(betik:scripts/test-live-models-docker.sh) - Gateway + geliştirme ajanı:
pnpm test:docker:live-gateway(betik:scripts/test-live-gateway-models-docker.sh) - İlk katılım sihirbazı (TTY, tam iskelet):
pnpm test:docker:onboard(betik:scripts/e2e/onboard-docker.sh) - Gateway ağ iletişimi (iki kapsayıcı, WS kimlik doğrulama + sağlık):
pnpm test:docker:gateway-network(betik:scripts/e2e/gateway-network-docker.sh) - Eklentiler (özel uzantı yükleme + kayıt defteri duman testi):
pnpm test:docker:plugins(betik:scripts/e2e/plugins-docker.sh)
OPENCLAW_CONFIG_DIR=...(varsayılan:~/.openclaw) →/home/node/.openclaw’e bağlanırOPENCLAW_WORKSPACE_DIR=...(varsayılan:~/.openclaw/workspace) →/home/node/.openclaw/workspace’e bağlanırOPENCLAW_PROFILE_FILE=...(varsayılan:~/.profile) →/home/node/.profile’ya bağlanır ve testler çalışmadan önce kaynak alınır- Çalıştırmayı daraltmak için
OPENCLAW_LIVE_GATEWAY_MODELS=.../OPENCLAW_LIVE_MODELS=... - Kimlik bilgilerinin ortamdan değil profil deposundan gelmesini sağlamak için
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1
Temel yetenekler
Belge düzenlemelerinden sonra belge kontrollerini çalıştırın:pnpm docs:list.
Çevrimdışı regresyon (CI-güvenli)
Bunlar, gerçek sağlayıcılar olmadan “gerçek hat” regresyonlarıdır:- Gateway araç çağırma (mock OpenAI, gerçek gateway + ajan döngüsü):
src/gateway/gateway.tool-calling.mock-openai.test.ts - Gateway sihirbazı (WS
wizard.start/wizard.next, yapılandırma yazar + kimlik doğrulama zorunlu):src/gateway/gateway.wizard.e2e.test.ts
Ajan güvenilirliği değerlendirmeleri (skills)
Halihazırda “ajan güvenilirliği değerlendirmeleri” gibi davranan bazı CI-güvenli testlerimiz var:- Gerçek gateway + ajan döngüsü üzerinden mock araç çağırma (
src/gateway/gateway.tool-calling.mock-openai.test.ts). - Oturum kablolamasını ve yapılandırma etkilerini doğrulayan uçtan uca sihirbaz akışları (
src/gateway/gateway.wizard.e2e.test.ts).
- Karar verme: istemde skills listelendiğinde, ajan doğru skill’i seçiyor mu (ya da alakasız olanlardan kaçınıyor mu)?
- Uyumluluk: ajan, kullanımdan önce
SKILL.md’yi okuyor mu ve gerekli adımları/argümanları izliyor mu? - İş akışı sözleşmeleri: araç sırası, oturum geçmişi taşınması ve sandbox sınırlarını doğrulayan çok turlu senaryolar.
- Araç çağrılarını + sıralamayı, skill dosyası okumalarını ve oturum kablolamasını doğrulamak için mock sağlayıcılar kullanan bir senaryo çalıştırıcı.
- Skill odaklı küçük bir senaryo paketi (kullan vs kaçın, kapılama, isteme enjeksiyonu).
- CI-güvenli paket yerleştirildikten sonra yalnızca isteğe bağlı (opt-in, env ile kapılı) canlı değerlendirmeler.
Regresyon ekleme (rehber)
Canlıda keşfedilen bir sağlayıcı/model sorununu düzelttiğinizde:- Mümkünse CI-güvenli bir regresyon ekleyin (sağlayıcıyı mock’layın/stub’layın veya tam istek-şekli dönüşümünü yakalayın)
- Doğası gereği yalnızca canlıysa (oran sınırları, kimlik doğrulama politikaları), canlı testi dar tutun ve env değişkenleriyle opt-in yapın
- Hatayı yakalayan en küçük katmanı hedeflemeyi tercih edin:
- sağlayıcı istek dönüştürme/yeniden oynatma hatası → doğrudan modeller testi
- gateway oturum/geçmiş/araç hattı hatası → gateway canlı duman testi veya CI-güvenli gateway mock testi