tests/
├── Unit/ # Unit-тесты (изолированные, без WordPress)
├── Feature/ # E2E/Integration тесты (с реальным WordPress)
├── Pest.php # Конфигурация Pest для unit-тестов
├── bootstrap.php # Bootstrap для unit-тестов (Brain Monkey)
└── bootstrap-e2e.php # Bootstrap для E2E тестов (WordPress)
- Назначение: Тестирование отдельных классов и методов в изоляции
- Окружение: Brain Monkey (мок WordPress функций)
- Скорость: Быстрые (~1-2 секунды)
- Запуск:
composer test:unit
- Назначение: Тестирование полного цикла работы плагина
- Окружение: Реальный WordPress
- Скорость: Медленные (~10-30 секунд)
- Запуск:
composer test:e2e
composer testcomposer test:unitcomposer test:e2ecomposer test:coveragevendor/bin/pest tests/Feature/QueueIntegrationTest.phpvendor/bin/pest --filter="полный цикл"Тестирует основной функционал очередей:
- ✅ Полный цикл: dispatch → queue → process → complete
- ✅ Задачи с delay
- ✅ Повторные попытки при ошибках
- ✅ FIFO порядок обработки
- ✅ Независимые очереди
- ✅ Pause/Resume очередей
- ✅ Clear/Cancel очередей
- ✅ Синхронное выполнение (dispatchSync)
- ✅ Лимиты worker (maxJobs, maxTime)
- ✅ Логирование (успех/ошибка)
- ✅ Сериализация пользовательских данных
Тестирует планировщик задач:
- ✅ Регистрация задач с атрибутом #[Schedule]
- ✅ Стандартные интервалы (hourly, daily, weekly, monthly)
- ✅ Кастомные интервалы
- ✅ Запуск по расписанию
- ✅ Методы планировщика (at, cron, dailyAt, everyMinute и т.д.)
- ✅ Отмена запланированных задач
Тестирует REST API эндпоинты:
- ✅ GET /queues - список очередей
- ✅ GET /queues/{queue} - информация об очереди
- ✅ POST /queues/{queue}/pause - пауза очереди
- ✅ POST /queues/{queue}/resume - возобновление очереди
- ✅ POST /queues/{queue}/clear - очистка очереди
- ✅ GET /queues/{queue}/jobs - список задач
- ✅ GET /logs - логи выполнения
- ✅ GET /stats - статистика
- ✅ POST /queues/{queue}/process - запуск обработки
- ✅ Аутентификация и права доступа
Тестирует WP-CLI команды:
- ✅ queue:work - обработка очереди
- ✅ queue:list - список очередей
- ✅ queue:clear - очистка очереди
- ✅ queue:pause - пауза очереди
- ✅ queue:resume - возобновление очереди
- ✅ queue:stats - статистика
- ✅ queue:failed - проваленные задачи
- ✅ queue:retry - повтор задачи
- ✅ queue:flush - очистка всех очередей
- ✅ queue:monitor - мониторинг
- ✅ cron:list - список cron задач
- ✅ cron:run - запуск cron задач
- WordPress установлен: Тесты требуют реальную установку WordPress
- База данных: Доступна база данных WordPress
- Права доступа: Права на запись в wp_options
Для локальной разработки достаточно unit-тестов:
composer test:unitE2E тесты запускаются автоматически в GitHub Actions:
- WordPress latest (6.7+) + PHP 8.3
- WordPress 6.7 + PHP 8.3
Конфигурация в .github/workflows/ci.yml.
vendor/bin/pest --verbosevendor/bin/pest --stop-on-failurevendor/bin/pest --debugЦель: 80%+ покрытие
Текущее покрытие:
- Unit-тесты: ~60%
- E2E тесты: ~90%
- Общее: ~75%
- Изоляция: Каждый тест должен быть независимым
- Очистка: Используйте beforeEach/afterEach для очистки данных
- Читаемость: Названия тестов на русском, описывают что тестируется
- Покрытие: Тестируйте edge cases и ошибки
- Скорость: Unit-тесты быстрые, E2E только для критичного функционала
# Проверьте путь к WordPress в bootstrap-e2e.php
$wp_root = dirname(__DIR__, 4);# Проверьте wp-config.php
# Убедитесь что база данных запущена# Проверьте права на запись
chmod -R 755 wp-content/plugins/wp-queue# Очистите кеш
rm -rf .phpunit.cache
composer test:e2e