diff --git a/docs/uk/reference/test.md b/docs/uk/reference/test.md index 1f86f5221..a99a3db7a 100644 --- a/docs/uk/reference/test.md +++ b/docs/uk/reference/test.md @@ -4,49 +4,49 @@ read_when: summary: Як запускати тести локально (vitest) і коли використовувати режими force/coverage title: Тести x-i18n: - generated_at: "2026-04-28T11:24:49Z" + generated_at: "2026-04-28T17:51:30Z" model: gpt-5.5 provider: openai - source_hash: c296ade14c05f14a8bc1921bd9c1fc07908225eab781004f93dfd484d511f6f3 + source_hash: d7a6f0978c874d50c60706f0336616859f6abdc49855ed768f14088c3a139e23 source_path: reference/test.md workflow: 16 --- -- Повний набір тестування (набори, live, Docker): [Тестування](/uk/help/testing) +- Повний набір для тестування (набори, live, Docker): [Тестування](/uk/help/testing) -- `pnpm test:force`: завершує будь-який завислий процес gateway, що утримує стандартний порт керування, а потім запускає повний набір Vitest з ізольованим портом gateway, щоб серверні тести не конфліктували із запущеним екземпляром. Використовуйте це, коли попередній запуск gateway залишив порт 18789 зайнятим. -- `pnpm test:coverage`: запускає unit-набір із покриттям V8 (через `vitest.unit.config.ts`). Це gate покриття unit-тестів для завантажених файлів, а не покриття всіх файлів усього репозиторію. Пороги: 70% для рядків/функцій/інструкцій і 55% для гілок. Оскільки `coverage.all` має значення false, gate вимірює файли, завантажені набором unit-покриття, замість того щоб вважати кожен файл вихідного коду з розділених lanes непокритим. -- `pnpm test:coverage:changed`: запускає unit-покриття лише для файлів, змінених після `origin/main`. -- `pnpm test:changed`: дешевий розумний запуск тестів для змін. Він запускає точні цілі з прямих редагувань тестів, сусідніх файлів `*.test.ts`, явних зіставлень вихідного коду та локального графа імпортів. Широкі зміни конфігурації/пакетів пропускаються, якщо вони не зіставляються з точними тестами. -- `OPENCLAW_TEST_CHANGED_BROAD=1 pnpm test:changed`: явний широкий запуск тестів для змін. Використовуйте його, коли редагування тестового harness/конфігурації/пакета має повернутися до ширшої поведінки Vitest для змінених тестів. -- `pnpm changed:lanes`: показує архітектурні lanes, активовані diff відносно `origin/main`. -- `pnpm check:changed`: запускає розумний check gate для змін у diff відносно `origin/main`. Він запускає typecheck, lint і guard-команди для порушених архітектурних lanes, але не запускає тести Vitest. Використовуйте `pnpm test:changed` або явний `pnpm test ` для тестового підтвердження. -- `pnpm test`: спрямовує явні цілі файлів/каталогів через scoped Vitest lanes. Запуски без цілі використовують фіксовані групи shard і розгортаються до leaf-конфігів для локального паралельного виконання; група extensions завжди розгортається до per-extension shard-конфігів замість одного величезного процесу root-project. -- Запуски тестового wrapper завершуються коротким підсумком `[test] passed|failed|skipped ... in ...`. Власний рядок тривалості Vitest лишається деталлю для кожного shard. -- Спільний тестовий стан OpenClaw: використовуйте `src/test-utils/openclaw-test-state.ts` з Vitest, коли тесту потрібні ізольовані `HOME`, `OPENCLAW_STATE_DIR`, `OPENCLAW_CONFIG_PATH`, fixture конфігурації, workspace, каталог агента або сховище auth-profile. Docker/Bash E2E lanes можуть використовувати `scripts/lib/openclaw-test-state.mjs shell --label --scenario ` для shell-фрагмента всередині контейнера або `node scripts/lib/openclaw-test-state.mjs -- create --label --scenario --env-file --json` для host env-файла, який можна підключити як source. `--` перед `create` не дає новішим runtime Node трактувати `--env-file` як прапорець Node. -- Повні, extension та include-pattern shard-запуски оновлюють локальні дані часу в `.artifacts/vitest-shard-timings.json`; подальші whole-config запуски використовують ці дані, щоб балансувати повільні й швидкі shards. Include-pattern CI shards додають назву shard до timing key, завдяки чому часи відфільтрованих shard лишаються видимими без заміни даних часу whole-config. Встановіть `OPENCLAW_TEST_PROJECTS_TIMINGS=0`, щоб ігнорувати локальний timing-артефакт. -- Вибрані тестові файли `plugin-sdk` і `commands` тепер спрямовуються через окремі легкі lanes, які залишають лише `test/setup.ts`, а runtime-heavy випадки лишаються на своїх наявних lanes. -- Файли вихідного коду із сусідніми тестами спершу зіставляються з цим сусіднім тестом, перш ніж fallback перейти до ширших glob каталогу. Редагування helper під `src/channels/plugins/contracts/test-helpers`, `src/plugin-sdk/test-helpers` і `src/plugins/contracts` використовують локальний граф імпортів, щоб запускати імпортуючі тести замість широкого запуску кожного shard, коли шлях залежності точний. -- `auto-reply` тепер також розділяється на три окремі конфіги (`core`, `top-level`, `reply`), щоб reply harness не домінував над легшими top-level тестами статусу/токенів/helper. -- Базовий конфіг Vitest тепер за замовчуванням використовує `pool: "threads"` і `isolate: false`, зі спільним неізольованим runner, увімкненим у конфігах репозиторію. +- `pnpm test:force`: Завершує будь-який завислий процес Gateway, що утримує стандартний контрольний порт, а потім запускає повний набір Vitest з ізольованим портом Gateway, щоб серверні тести не конфліктували із запущеним екземпляром. Використовуйте це, коли попередній запуск Gateway залишив порт 18789 зайнятим. +- `pnpm test:coverage`: Запускає unit-набір із покриттям V8 (через `vitest.unit.config.ts`). Це gate покриття unit для завантажених файлів, а не покриття всіх файлів усього репозиторію. Пороги: 70% для рядків/функцій/інструкцій і 55% для гілок. Оскільки `coverage.all` має значення false, gate вимірює файли, завантажені unit-набором покриття, замість того щоб вважати кожен вихідний файл із розділеної lane непокритим. +- `pnpm test:coverage:changed`: Запускає unit-покриття лише для файлів, змінених після `origin/main`. +- `pnpm test:changed`: дешевий розумний запуск тестів для змін. Він запускає точні цілі з прямих змін тестів, сусідні файли `*.test.ts`, явні зіставлення джерел і локальний граф імпортів. Широкі зміни конфігурації/пакетів пропускаються, якщо вони не зіставляються з точними тестами. +- `OPENCLAW_TEST_CHANGED_BROAD=1 pnpm test:changed`: явний широкий запуск тестів для змін. Використовуйте його, коли зміна test harness/конфігурації/пакета має повертатися до ширшої поведінки Vitest для changed-test. +- `pnpm changed:lanes`: показує архітектурні lanes, спричинені diff відносно `origin/main`. +- `pnpm check:changed`: запускає розумний check gate для змін у diff відносно `origin/main`. Він запускає typecheck, lint і guard-команди для зачеплених архітектурних lanes, але не запускає тести Vitest. Використовуйте `pnpm test:changed` або явний `pnpm test ` для тестового підтвердження. +- `pnpm test`: спрямовує явні цілі файлів/директорій через scoped Vitest lanes. Запуски без цілі використовують фіксовані shard-групи й розгортаються до leaf-конфігурацій для локального паралельного виконання; група plugin завжди розгортається до shard-конфігурацій кожного plugin замість одного великого процесу root-проєкту. +- Запуски test wrapper завершуються коротким підсумком `[test] passed|failed|skipped ... in ...`. Власний рядок тривалості Vitest лишається деталізацією для кожного shard. +- Спільний стан тестів OpenClaw: використовуйте `src/test-utils/openclaw-test-state.ts` з Vitest, коли тесту потрібні ізольовані `HOME`, `OPENCLAW_STATE_DIR`, `OPENCLAW_CONFIG_PATH`, config fixture, workspace, директорія agent або auth-profile store. Docker/Bash E2E lanes, що source `scripts/lib/docker-e2e-image.sh`, можуть передати `docker_e2e_test_state_shell_b64