Production-ready test framework для E2E тестирования Task Manager приложения.
Проект реализует лучшие практики Staff SDET уровня:
- ✅ Test Independence: полная изоляция тестов
- ✅ Factory Pattern: гибкое создание тестовых данных
- ✅ Test Pyramid: 70% unit, 20% integration, 10% E2E
- ✅ Observability: структурированное логирование
- ✅ Resilience: retry логика, Circuit Breaker
- ✅ CI/CD: Quality Gates, параллелизация
- Установка зависимостей:
make install- Запуск приложения локально (dev):
make run- Запуск линтера:
make lintPlaywright-конфигурация поднимает dev-сервер автоматически через webServer (см. playwright.config.js), поэтому отдельно стартовать npm run dev обычно не нужно.
- Запуск тестов через Makefile:
make test- Запуск тестов через npm:
npm test- Дебаг режим:
npm run test:debug- UI режим:
npm run test:ui- Открыть HTML-репорт:
npm run test:report- Unit-тесты (Vitest):
npm run test:unit # Запуск unit-тестов
npm run test:unit:watch # Watch режим
npm run test:unit:coverage # С coverage отчетом- Все тесты:
npm run test:all # Unit + E2E тестыПроект следует Test Pyramid принципу:
📊 E2E (10%) - полные пользовательские сценарии
🔄 Integration (20%) - API, workflows, contracts
🟢 Unit (70%) - хелперы, фабрики, утилиты
tests/e2e/- E2E тесты (Playwright)smoke/- быстрые smoke тесты (<30 секунд)
tests/integration/- Integration тестыapi/- API integration тестыworkflows/- Business workflow тесты
tests/unit/- Unit тесты (Vitest)factories/- тесты фабрикhelpers/- тесты хелперов
tests/contracts/- Contract тестыtests/factories/- Factory Pattern для данныхtests/helpers/- Вспомогательные функцииtests/pages/- Page Object Model
- Page Object Model: изоляция UI логики
- Factory Pattern: создание тестовых данных
- Test Data Registry: автоматическая очистка
- API Client: управление данными через API
- Structured Logging: детальное логирование
Подробнее в документации.
Проект настроен с улучшенным CI/CD pipeline:
Запускается при push/PR в main или develop:
- Lint: ESLint проверка
- Unit Tests: быстрые тесты хелперов
- E2E Tests: полные тесты (параллельно)
- Quality Gates: проверка всех результатов
Запускается каждый день в 2:00 UTC:
- Тесты на всех браузерах (chromium, firefox, webkit)
- Matrix стратегия для параллелизации
- Можно запустить вручную через
workflow_dispatch
Автоматическая генерация отчетов после CI/Nightly тестов
Для работы CI/CD добавьте в Settings → Secrets → Actions:
BASE_URL(опционально) - URL приложения для тестов
- BASE_URL: базовый URL приложения (по умолчанию
http://localhost:5173) - EXPECT_TIMEOUT: таймаут ожиданий
expect()в мс (по умолчанию5000) - CI: при наличии включает
forbidOnly,retries=2,workers=1и отключает автопоказ HTML-репорта - LOG_LEVEL: уровень логирования (0=DEBUG, 1=INFO, 2=WARN, 3=ERROR, по умолчанию 1)
- Архитектура - обзор архитектуры фреймворка
- Руководство по написанию тестов - примеры и best practices
- Best Practices - принципы и паттерны
- Troubleshooting - решение частых проблем
- ADR (Architecture Decision Records) - документированные архитектурные решения
- ✅ Test Independence: 100% тестов работают изолированно
- ✅ Code Coverage: ≥80% для production кода (цель)
- ✅ Test Execution Time: <5 минут для полного suite
- ✅ Flaky Tests: 0% flaky тестов
- ✅ Fast Feedback: Unit <100ms, Integration <1s, E2E <10s каждый