diff --git a/docs/TESTING.md b/docs/TESTING.md index 13b85901..9e897662 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -33,9 +33,17 @@ `--shard=i/4`), перед стабильным релизом и по понедельникам. Дешёвая половина идёт с юнитами: `test/mutation-gate.test.mjs`. Локально для дельты задачи — `node scripts/mutation-gate.mjs --changed origin/dev..HEAD`: гоняются только -мутанты, чьи patch-файлы задеты диффом (#332). Бандл собирается только -мутантам с браузерным гвардом; компиляция тестов в worktree стартует с -тёплого `test-build/` основного дерева. +мутанты, чьи patch-файлы или файлы гарда задеты диффом (#332, #475). Бандл +собирается только мутантам с браузерным гвардом; компиляция тестов в worktree +стартует с тёплого `test-build/` основного дерева. + +В CI `changed_mutants` добавляет `--ledger=<файл>` — журнал пойманных +свидетелей (#481): после каждого пойманного мутанта в файл пишется отпечаток +его входов (файлы патча и гарда, объявление мутанта; строка версии продукта +нормализована), и мутант с тем же отпечатком в следующем прогоне не гоняется. +Журнал живёт в кэше Actions по шарду, сохраняется при любом исходе шага, так +что отменённый пуш или таймаут не пропадают даром. Полный прогон и `--id` +журнал не читают; `--ledger` без `--changed` — ошибка. Чистые Python-контракты канонизации, которым не нужен Home Assistant, находятся в `tests_backend/test_coordinate_canonicalization_pure.py`. Они обязаны реально