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.
- مجموعة الاختبار الكاملة (الحزم، المباشر، Docker): الاختبار
- التحقق من حزم التحديثات وPlugin: اختبار التحديثات وPlugin
-
pnpm test:force: يقتل أي عملية Gateway عالقة تمسك بمنفذ التحكم الافتراضي، ثم يشغّل مجموعة Vitest الكاملة باستخدام منفذ Gateway معزول كي لا تتصادم اختبارات الخادم مع مثيل قيد التشغيل. استخدم هذا عندما يترك تشغيل Gateway سابق المنفذ 18789 مشغولًا. -
pnpm test:coverage: يشغّل مجموعة الوحدة مع تغطية V8 (عبرvitest.unit.config.ts). هذه بوابة تغطية لمسار الوحدة الافتراضي، وليست تغطية لكل ملفات المستودع بالكامل. العتبات هي 70% للأسطر/الدوال/التعليمات و55% للفروع. لأنcoverage.allيساوي false ولأن نطاق المسار الافتراضي يحدد مشمولات التغطية إلى اختبارات الوحدة غير السريعة ذات ملفات مصدر شقيقة، تقيس البوابة المصدر المملوك لهذا المسار بدلًا من كل استيراد انتقالي يحدث أن تحمّله. -
pnpm test:coverage:changed: يشغّل تغطية الوحدة فقط للملفات التي تغيّرت منذorigin/main. -
pnpm test:changed: تشغيل اختبار تغييرات ذكي ومنخفض التكلفة. يشغّل أهدافًا دقيقة من تعديلات الاختبارات المباشرة، وملفات*.test.tsالشقيقة، وتعيينات المصدر الصريحة، ورسم الاستيراد المحلي. يتم تخطي تغييرات العموم/الإعدادات/الحزمة ما لم تُعيَّن إلى اختبارات دقيقة. -
OPENCLAW_TEST_CHANGED_BROAD=1 pnpm test:changed: تشغيل اختبار تغييرات واسع صريح. استخدمه عندما ينبغي أن يعود تعديل حزمة/إعداد/حاضنة اختبار إلى سلوك Vitest الأوسع لاختبارات التغييرات. -
pnpm changed:lanes: يعرض المسارات المعمارية التي يفعّلها الفرق مقابلorigin/main. -
pnpm check:changed: يشغّل بوابة الفحص الذكي للتغييرات مقابل الفرق معorigin/main. يشغّل أوامر فحص الأنواع والـ lint والحراسة للمسارات المعمارية المتأثرة، لكنه لا يشغّل اختبارات Vitest. استخدمpnpm test:changedأوpnpm test <target>صريحًا لإثبات الاختبار. -
pnpm test: يوجّه أهداف الملفات/الأدلة الصريحة عبر مسارات Vitest محددة النطاق. التشغيلات غير المستهدفة تستخدم مجموعات شظايا ثابتة وتتوسع إلى إعدادات ورقية للتنفيذ المتوازي المحلي؛ وتتوسع مجموعة الإضافات دائمًا إلى إعدادات الشظايا لكل إضافة بدلًا من عملية مشروع جذرية واحدة ضخمة. -
تنتهي تشغيلات مغلّف الاختبار بملخص قصير
[test] passed|failed|skipped ... in .... يبقى سطر مدة Vitest نفسه تفصيلًا لكل شظية. -
حالة اختبار OpenClaw المشتركة: استخدم
src/test-utils/openclaw-test-state.tsمن Vitest عندما يحتاج اختبار إلىHOMEمعزول، أوOPENCLAW_STATE_DIR، أوOPENCLAW_CONFIG_PATH، أو عنصر إعداد ثابت، أو مساحة عمل، أو دليل وكيل، أو مخزن ملفات تعريف مصادقة. -
مساعدين E2E للعمليات: استخدم
test/helpers/openclaw-test-instance.tsعندما يحتاج اختبار E2E على مستوى عملية Vitest إلى Gateway قيد التشغيل، وبيئة CLI، والتقاط السجلات، والتنظيف في مكان واحد. -
مساعدين E2E لـ Docker/Bash: يمكن للمسارات التي تصدّر
scripts/lib/docker-e2e-image.shأن تمررdocker_e2e_test_state_shell_b64 <label> <scenario>إلى الحاوية وتفك ترميزه باستخدامscripts/lib/openclaw-e2e-instance.sh؛ ويمكن للسكربتات متعددة المنازل تمريرdocker_e2e_test_state_function_b64واستدعاءopenclaw_test_state_create <label> <scenario>في كل تدفق. يمكن للمنادين ذوي المستوى الأدنى استخدامscripts/lib/openclaw-test-state.mjs shell --label <name> --scenario <name>لمقتطف shell داخل الحاوية، أوnode scripts/lib/openclaw-test-state.mjs -- create --label <name> --scenario <name> --env-file <path> --jsonلملف بيئة مضيف قابل للتصدير. تحافظ--قبلcreateعلى منع إصدارات Node الأحدث من معاملة--env-fileكعلم Node. يمكن لمسارات Docker/Bash التي تشغّل Gateway تصديرscripts/lib/openclaw-e2e-instance.shداخل الحاوية لحل نقطة الدخول، وبدء OpenAI الوهمي، وتشغيل Gateway في المقدمة/الخلفية، ومجسات الجاهزية، وتصدير بيئة الحالة، وتفريغ السجلات، وتنظيف العمليات. -
تحدّث تشغيلات الشظايا الكاملة، والإضافات، وأنماط التضمين بيانات التوقيت المحلية في
.artifacts/vitest-shard-timings.json؛ وتستخدم تشغيلات الإعداد الكامل اللاحقة تلك التوقيتات لموازنة الشظايا البطيئة والسريعة. تضيف شظايا CI بنمط التضمين اسم الشظية إلى مفتاح التوقيت، ما يحافظ على ظهور توقيتات الشظايا المفلترة دون استبدال بيانات توقيت الإعداد الكامل. اضبطOPENCLAW_TEST_PROJECTS_TIMINGS=0لتجاهل أثر التوقيت المحلي. -
يتم الآن توجيه ملفات اختبار
plugin-sdkوcommandsالمختارة عبر مسارات خفيفة مخصصة تبقي فقط علىtest/setup.ts، مع ترك الحالات الثقيلة وقت التشغيل في مساراتها الحالية. -
ملفات المصدر ذات الاختبارات الشقيقة تُعيَّن إلى ذلك الشقيق قبل الرجوع إلى أنماط أدلة أوسع. تعديلات المساعدين ضمن
src/channels/plugins/contracts/test-helpersوsrc/plugin-sdk/test-helpersوsrc/plugins/contractsتستخدم رسم استيراد محليًا لتشغيل الاختبارات المستورِدة بدلًا من تشغيل واسع لكل شظية عندما يكون مسار الاعتماد دقيقًا. -
ينقسم
auto-replyالآن أيضًا إلى ثلاثة إعدادات مخصصة (coreوtop-levelوreply) كي لا تهيمن حاضنة الرد على اختبارات الحالة/الرموز/المساعدين الأخف في المستوى الأعلى. -
أصبح إعداد Vitest الأساسي يستخدم افتراضيًا
pool: "threads"وisolate: false، مع تمكين المشغّل غير المعزول المشترك عبر إعدادات المستودع. -
pnpm test:channelsيشغّلvitest.channels.config.ts. -
pnpm test:extensionsوpnpm test extensionsيشغّلان كل شظايا الإضافات/Plugin. تعمل Plugins القنوات الثقيلة، وPlugin المتصفح، وOpenAI كشظايا مخصصة؛ وتبقى مجموعات Plugin الأخرى مجمّعة. استخدمpnpm test extensions/<id>لمسار Plugin مضمّن واحد. -
pnpm test:perf:imports: يفعّل تقارير مدة الاستيراد + تفصيل الاستيراد في Vitest، مع الاستمرار في استخدام توجيه المسارات المحدد النطاق لأهداف الملفات/الأدلة الصريحة. -
pnpm test:perf:imports:changed: نفس تحليل الاستيراد، لكن فقط للملفات التي تغيّرت منذorigin/main. -
pnpm test:perf:changed:bench -- --ref <git-ref>يقيس أداء مسار وضع التغييرات الموجّه مقابل تشغيل المشروع الجذري الأصلي للفرق نفسه الملتزم في git. -
pnpm test:perf:changed:bench -- --worktreeيقيس أداء مجموعة تغييرات شجرة العمل الحالية دون الالتزام أولًا. -
pnpm test:perf:profile:main: يكتب ملف تعريف CPU لخيط Vitest الرئيسي (.artifacts/vitest-main-profile). -
pnpm test:perf:profile:runner: يكتب ملفات تعريف CPU + heap لمشغّل الوحدة (.artifacts/vitest-runner-profile). -
pnpm test:perf:groups --full-suite --allow-failures --output .artifacts/test-perf/baseline-before.json: يشغّل كل إعدادات Vitest الورقية للمجموعة الكاملة تسلسليًا ويكتب بيانات مدة مجمّعة بالإضافة إلى آثار JSON/سجل لكل إعداد. يستخدم وكيل أداء الاختبارات هذا كخط أساس قبل محاولة إصلاح الاختبارات البطيئة. -
pnpm test:perf:groups:compare .artifacts/test-perf/baseline-before.json .artifacts/test-perf/after-agent.json: يقارن التقارير المجمّعة بعد تغيير يركز على الأداء. -
تكامل Gateway: الاشتراك عبر
OPENCLAW_TEST_INCLUDE_GATEWAY=1 pnpm testأوpnpm test:gateway. -
pnpm test:e2e: يشغّل اختبارات دخان Gateway من البداية إلى النهاية (اقتران متعدد المثيلات WS/HTTP/node). يستخدم افتراضيًاthreads+isolate: falseمع عمال متكيفين فيvitest.e2e.config.ts؛ اضبطه باستخدامOPENCLAW_E2E_WORKERS=<n>وعيّنOPENCLAW_E2E_VERBOSE=1للسجلات المطوّلة. -
pnpm test:live: يشغّل اختبارات المزوّد الحية (minimax/zai). يتطلب مفاتيح API وLIVE=1(أو*_LIVE_TEST=1الخاص بالمزوّد) لإلغاء التخطي. -
pnpm test:docker:all: يبني صورة الاختبار الحي المشتركة، ويحزم OpenClaw مرة واحدة كأرشيف npm، ويبني/يعيد استخدام صورة مشغّل Node/Git عارية بالإضافة إلى صورة وظيفية تثبّت ذلك الأرشيف في/app، ثم يشغّل مسارات دخان Docker معOPENCLAW_SKIP_DOCKER_BUILD=1عبر مجدول موزون. تُستخدم الصورة العارية (OPENCLAW_DOCKER_E2E_BARE_IMAGE) لمسارات المثبّت/التحديث/اعتماد Plugin؛ وتحمّل تلك المسارات الأرشيف المبني مسبقًا بدلًا من استخدام مصادر المستودع المنسوخة. تُستخدم الصورة الوظيفية (OPENCLAW_DOCKER_E2E_FUNCTIONAL_IMAGE) لمسارات وظائف التطبيق المبني العادية.scripts/package-openclaw-for-docker.mjsهو محزّم الحزمة المحلي/CI الوحيد ويتحقق من الأرشيف بالإضافة إلىdist/postinstall-inventory.jsonقبل أن يستهلكه Docker. تعيش تعريفات مسارات Docker فيscripts/lib/docker-e2e-scenarios.mjs؛ ويعيش منطق المخطط فيscripts/lib/docker-e2e-plan.mjs؛ وينفّذscripts/test-docker-all.mjsالخطة المختارة. يصدرnode scripts/test-docker-all.mjs --plan-jsonخطة CI المملوكة للمجدول للمسارات المختارة، وأنواع الصور، واحتياجات الحزمة/الصورة الحية، وسيناريوهات الحالة، وفحوص الاعتماد دون بناء Docker أو تشغيله. يتحكمOPENCLAW_DOCKER_ALL_PARALLELISM=<n>في خانات العمليات ويستخدم 10 افتراضيًا؛ ويتحكمOPENCLAW_DOCKER_ALL_TAIL_PARALLELISM=<n>في حوض الذيل الحساس للمزوّد ويستخدم 10 افتراضيًا. حدود المسارات الثقيلة الافتراضية هيOPENCLAW_DOCKER_ALL_LIVE_LIMIT=9وOPENCLAW_DOCKER_ALL_NPM_LIMIT=10وOPENCLAW_DOCKER_ALL_SERVICE_LIMIT=7؛ وتكون حدود المزوّدين افتراضيًا مسارًا ثقيلًا واحدًا لكل مزوّد عبرOPENCLAW_DOCKER_ALL_LIVE_CLAUDE_LIMIT=4وOPENCLAW_DOCKER_ALL_LIVE_CODEX_LIMIT=4وOPENCLAW_DOCKER_ALL_LIVE_GEMINI_LIMIT=4. استخدمOPENCLAW_DOCKER_ALL_WEIGHT_LIMITأوOPENCLAW_DOCKER_ALL_DOCKER_LIMITللمضيفات الأكبر. إذا تجاوز مسار واحد حد الوزن أو المورد الفعّال على مضيف منخفض التوازي، فلا يزال بإمكانه البدء من حوض فارغ وسيعمل وحده حتى يحرر السعة. يتم توزيع بدايات المسارات بفاصل ثانيتين افتراضيًا لتجنب عواصف إنشاء عفريت Docker المحلي؛ تجاوز ذلك باستخدامOPENCLAW_DOCKER_ALL_START_STAGGER_MS=<ms>. يجري المشغّل فحصًا تمهيديًا لـ Docker افتراضيًا، وينظف حاويات E2E القديمة لـ OpenClaw، ويصدر حالة المسارات النشطة كل 30 ثانية، ويشارك مخابئ أدوات CLI للمزوّدين بين المسارات المتوافقة، ويعيد محاولة إخفاقات المزوّد الحي العابرة مرة واحدة افتراضيًا (OPENCLAW_DOCKER_ALL_LIVE_RETRIES=<n>)، ويخزن توقيتات المسارات في.artifacts/docker-tests/lane-timings.jsonللترتيب من الأطول أولًا في التشغيلات اللاحقة. استخدمOPENCLAW_DOCKER_ALL_DRY_RUN=1لطباعة بيان المسارات دون تشغيل Docker، أوOPENCLAW_DOCKER_ALL_STATUS_INTERVAL_MS=<ms>لضبط خرج الحالة، أوOPENCLAW_DOCKER_ALL_TIMINGS=0لتعطيل إعادة استخدام التوقيت. استخدمOPENCLAW_DOCKER_ALL_LIVE_MODE=skipللمسارات المحلية/الحتمية فقط أوOPENCLAW_DOCKER_ALL_LIVE_MODE=onlyلمسارات المزوّد الحي فقط؛ وأسماء الحزم البديلة هيpnpm test:docker:local:allوpnpm test:docker:live:all. يدمج وضع الحي فقط مسارات الحي الرئيسية والذيلية في حوض واحد مرتب من الأطول أولًا كي تتمكن دلاء المزوّدين من حزم أعمال Claude وCodex وGemini معًا. يتوقف المشغّل عن جدولة مسارات مجمّعة جديدة بعد أول فشل ما لم يتم تعيينOPENCLAW_DOCKER_ALL_FAIL_FAST=0، ولكل مسار مهلة احتياطية قدرها 120 دقيقة يمكن تجاوزها باستخدامOPENCLAW_DOCKER_ALL_LANE_TIMEOUT_MS؛ وتستخدم مسارات حية/ذيلية مختارة حدودًا أضيق لكل مسار. لأوامر إعداد Docker لخلفية CLI مهلة خاصة بها عبرOPENCLAW_LIVE_CLI_BACKEND_SETUP_TIMEOUT_SECONDS(الافتراضي 180). تُكتب سجلات كل مسار، وsummary.json، وfailures.json، وتوقيتات المراحل تحت.artifacts/docker-tests/<run-id>/؛ استخدمpnpm test:docker:timings <summary.json>لفحص المسارات البطيئة وpnpm test:docker:rerun <run-id|summary.json|failures.json>لطباعة أوامر إعادة تشغيل موجهة ورخيصة. -
pnpm test:docker:browser-cdp-snapshot: يبني حاوية E2E مصدرية مدعومة بـ Chromium، ويبدأ CDP خامًا بالإضافة إلى Gateway معزول، ويشغّلbrowser doctor --deep، ويتحقق من أن لقطات دور CDP تتضمن روابط URL، والعناصر القابلة للنقر المرفوعة بالمؤشر، ومراجع iframe، وبيانات الإطار الوصفية. -
pnpm test:docker:skill-install: يثبّت أرشيف OpenClaw المحزوم في مشغّل Docker عارٍ، ويعطّلskills.install.allowUploadedArchives، ويحل slug مهارة حاليًا من بحث ClawHub حي، ويثبّته عبرopenclaw skills install، ويتحقق منSKILL.mdو.clawhub/origin.jsonو.clawhub/lock.jsonوskills info --json. -
يمكن تشغيل مجسات Docker الحية لخلفية CLI كمسارات مركزة، على سبيل المثال
pnpm test:docker:live-cli-backend:codexأوpnpm test:docker:live-cli-backend:codex:resumeأوpnpm test:docker:live-cli-backend:codex:mcp. لدى Claude وGemini أسماء بديلة مطابقة لـ:resumeو:mcp. -
pnpm test:docker:openwebui: يبدأ OpenClaw + Open WebUI داخل Docker، ويسجل الدخول عبر Open WebUI، ويفحص/api/models، ثم يشغّل محادثة حقيقية عبر الوكيل من خلال/api/chat/completions. يتطلب مفتاح نموذج حي قابلًا للاستخدام (مثل OpenAI في~/.profile)، ويسحب صورة Open WebUI خارجية، ولا يُتوقع أن يكون مستقرًا في CI مثل مجموعات الوحدة/e2e العادية. -
pnpm test:docker:mcp-channels: يبدأ حاوية Gateway مزوّدة ببيانات أولية وحاوية عميل ثانية تُطلقopenclaw mcp serve، ثم يتحقق من اكتشاف المحادثات الموجَّهة، وقراءة النصوص، وبيانات تعريف المرفقات، وسلوك طابور الأحداث الحية، وتوجيه الإرسال الصادر، وإشعارات القنوات والأذونات بأسلوب Claude عبر جسر stdio الحقيقي. يقرأ تحقق إشعار Claude إطارات MCP الخام عبر stdio مباشرةً، بحيث يعكس اختبار smoke ما يصدره الجسر فعليًا. -
pnpm test:docker:upgrade-survivor: يثبّت حزمة OpenClaw المضغوطة بصيغة tarball فوق تجهيز مستخدم قديم متّسخ، ويشغّل تحديث الحزمة مع doctor غير تفاعلي من دون مفاتيح مزوّد أو قناة حية، ثم يبدأ Gateway عبر local loopback ويتحقق من بقاء الوكلاء، وإعدادات القنوات، وقوائم سماح Plugin، وملفات مساحة العمل/الجلسة، وحالة اعتماد Plugin قديمة راكدة، وبدء التشغيل، وحالة RPC. -
pnpm test:docker:published-upgrade-survivor: يثبّتopenclaw@latestافتراضيًا، ويزرع ملفات مستخدم حالي واقعية من دون مفاتيح مزوّد أو قناة حية، ويضبط ذلك الأساس بوصفة أمرopenclaw config setمضمّنة، ويحدّث ذلك التثبيت المنشور إلى حزمة OpenClaw المضغوطة بصيغة tarball، ويشغّل doctor غير تفاعلي، ويكتب.artifacts/upgrade-survivor/summary.json، ثم يبدأ Gateway عبر local loopback ويتحقق من أن النوايا المضبوطة، وملفات مساحة العمل/الجلسة، وإعدادات Plugin الراكدة وحالة الاعتماد القديمة، وبدء التشغيل، و/healthz، و/readyz، وحالة RPC تبقى أو تُصلَح بشكل نظيف. تجاوز أساسًا واحدًا باستخدامOPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC، أو وسّع مصفوفة محلية دقيقة باستخدامOPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECSمثلopenclaw@2026.5.2 openclaw@2026.4.23 openclaw@2026.4.15، أو أضف تجهيزات سيناريوهات باستخدامOPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issues؛ تتضمن مجموعة reported-issues السيناريوconfigured-plugin-installsللتحقق من تثبيت إضافات OpenClaw الخارجية المضبوطة تلقائيًا أثناء الترقية، وstale-source-plugin-shadowلمنع ظلال Plugin المعتمدة على المصدر فقط من تعطيل بدء التشغيل. يعرّض Package Acceptance هذه القيم باسمpublished_upgrade_survivor_baselineوpublished_upgrade_survivor_baselinesوpublished_upgrade_survivor_scenarios، ويحل رموز الأساس الوصفية مثلlast-stable-4أوall-since-2026.4.23قبل تسليم مواصفات الحزم الدقيقة إلى مسارات Docker. -
pnpm test:docker:update-migration: يشغّل أداة published-upgrade survivor في سيناريوplugin-deps-cleanupكثيف التنظيف، بدءًا منopenclaw@2026.4.23افتراضيًا. يوسّع سير العمل المنفصلUpdate Migrationهذا المسار باستخدامbaselines=all-since-2026.4.23بحيث تُحدَّث كل حزمة مستقرة منشورة من.23فصاعدًا إلى المرشح، ويُثبت تنظيف اعتماد Plugin المضبوط خارج Full Release CI. -
pnpm test:docker:plugins: يشغّل اختبار smoke للتثبيت/التحديث للمسار المحلي، وحزمfile:، وحزم سجل npm ذات الاعتمادات المرفوعة، ومراجع git المتحركة، وتجهيزات ClawHub، وتحديثات marketplace، وتمكين/فحص حزمة Claude.
بوابة PR المحلية
لفحوصات اعتماد/بوابة PR المحلية، شغّل:pnpm check:changedpnpm checkpnpm check:test-typespnpm buildpnpm testpnpm check:docs
pnpm test بشكل متقطع على مضيف محمّل، فأعد تشغيله مرة واحدة قبل اعتباره تراجعًا، ثم اعزله باستخدام pnpm test <path/to/test>. للمضيفين محدودي الذاكرة، استخدم:
OPENCLAW_VITEST_MAX_WORKERS=1 pnpm testOPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/tmp/openclaw-vitest-cache pnpm test:changed
معيار زمن انتقال النموذج (مفاتيح محلية)
السكريبت:scripts/bench-model.ts
الاستخدام:
source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10- بيئة اختيارية:
MINIMAX_API_KEY,MINIMAX_BASE_URL,MINIMAX_MODEL,ANTHROPIC_API_KEY - الموجّه الافتراضي: “رُد بكلمة واحدة: ok. بلا علامات ترقيم أو نص إضافي.”
- minimax وسيط 1279ms (الحد الأدنى 1114، الحد الأقصى 2431)
- opus وسيط 2454ms (الحد الأدنى 1224، الحد الأقصى 3170)
معيار بدء تشغيل CLI
السكريبت:scripts/bench-cli-startup.ts
الاستخدام:
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
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: كلا الإعدادين المسبقين
sampleCount، والمتوسط، وp50، وp95، والحد الأدنى/الأقصى، وتوزيع رمز الخروج/الإشارة، وملخصات الحد الأقصى لـ RSS لكل أمر. يكتب الخياران الاختياريان --cpu-prof-dir / --heap-prof-dir ملفات تعريف V8 لكل تشغيل بحيث يستخدم قياس التوقيت والتقاط ملف التعريف الحاضنة نفسها.
اصطلاحات الإخراج المحفوظ:
- يكتب
pnpm test:startup:bench:smokeأداة smoke المستهدفة في.artifacts/cli-startup-bench-smoke.json - يكتب
pnpm test:startup:bench:saveأداة المجموعة الكاملة في.artifacts/cli-startup-bench-all.jsonباستخدامruns=5وwarmup=1 - يحدّث
pnpm test:startup:bench:updateملف fixture الأساسي المضمّن في المستودع فيtest/fixtures/cli-startup-bench.jsonباستخدامruns=5وwarmup=1
test/fixtures/cli-startup-bench.json- حدّثه باستخدام
pnpm test:startup:bench:update - قارن النتائج الحالية مع ملف fixture باستخدام
pnpm test:startup:bench:check
Onboarding E2E (Docker)
Docker اختياري؛ ولا يلزم هذا إلا لاختبارات smoke الخاصة بالإعداد الأولي داخل الحاويات. تدفق بدء بارد كامل في حاوية Linux نظيفة:openclaw health.