intermediate
Тесты
Выполняйте unit, integration, component и end-to-end тесты в соответствии с риском и потребностью в скорости обратной связи.
Стратегия тестов в CI балансирует уверенность и скорость обратной связи. Unit-тесты быстро ловят логические регрессии; integration — границы модулей; component — поведение UI; end-to-end — критичные пользовательские сценарии.
| Слой | Типичный фокус | |------|----------------| | Unit | Чистая логика, быстрый feedback | | Integration | БД, HTTP, границы модулей | | Component | Состояния UI с Testing Library | | E2E | Критичные пути (Playwright, Cypress) |
- run: npm test -- --coverage
env:
CI: true
Хорошие пайплайны шардируют медленные suite, ограниченно ретраят известные flakes и при безопасности используют выбор по изменённым файлам. Блокировка merge из-за flaky E2E разрушает доверие быстрее, чем их пропуск.
На интервью: компромиссы test pyramid, борьба с flakes, детерминированные fixtures, changed-file selection и какие suite блокируют merge.
Типовые ошибки: flaky тесты подрывают доверие к CI; мало integration-тестов — моки доказывают неверное поведение; полный E2E matrix на каждую опечатку.
Компромисс — ширина покрытия против длительности пайплайна и стоимости поддержки.
Чеклист:
- Слой теста соответствует риску.
- Детерминированные fixtures.
- Быстро находите и чините flakes.
- Явно объявите merge-blocking suite.