Диагностика и лечение нестабильного (flaky) теста — race/timing/shared state/моки; фикс первопричины до 10 зелёных прогонов подряд (роль testing). Use when тест падает «иногда» или только в CI.
Installs into .claude/skills of the current project.
Are you the author of Testing Flaky?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/vitammiin-testing-flaky)
---
name: testing-flaky
description: Диагностика и лечение нестабильного (flaky) теста — race/timing/shared state/моки; фикс первопричины до 10 зелёных прогонов подряд (роль testing). Use when тест падает «иногда» или только в CI.
---
# Задача: вылечить flaky-тест
Диагностируй и вылечи нестабильный тест (см. `$testing-strategy`, `$e2e-playwright`, `$error-handling`).
1. Воспроизведи: 10–20 прогонов циклом (`for i in {1..20}; do npx vitest run <файл> || break; done`) + перемешанный порядок (`--sequence.shuffle`/`--randomize`); зафиксируй частоту и вывод падений. Есть CI-логи — прочитай первым делом.
2. Классифицируй: sleep/тайминги; race в async; shared state (БД/синглтон/кэш/модульная переменная); порядок тестов; незамоканные время/random/сеть; утечка ресурсов.
3. Чини первопричину, не симптом: НИКАКИХ retry, увеличения таймаута или `test.skip` как «фикса».
4. Типовые фиксы: sleep → событийное ожидание; shared state → изоляция данных на тест; время → fake timers; random → сид; сеть → мок на границе (MSW).
5. Race в продакшен-коде — находка: почини код или заведи задачу, не «стабилизируй» тест обходом.
6. Докажи: 10 зелёных прогонов подряд, включая перемешанный порядок — вставь вывод цикла.