Laratesto — Testo для Laravel

Иллюстрация рабочего стола с ноутбуком, кодом и блокнотом с набросками проектов

Laratesto — мой пакет для тестирования Laravel-приложений с помощью Testo. Он подготавливает приложение к тестам и добавляет знакомые инструменты для проверки запросов, базы данных и поведения приложения.

Иллюстрация рабочего стола с ноутбуком, кодом и блокнотом с набросками проектов
Идеи, код и новые проекты. Иллюстрация.

Зачем он нужен

Чтобы использовать новый тестовый инструмент в Laravel, мало просто запустить тестовую функцию. Нужно загрузить приложение, подготовить окружение, дать тесту доступ к HTTP-запросам и базе данных, а после выполнения привести состояние в порядок.

Эту связку и обеспечивает Laratesto: Laravel запускается перед каждым тестом, а после теста пакет очищает состояние фреймворка. Основная интеграция работает без зависимости от PHPUnit.

Что уже есть

  • Подготовка Laravel-приложения для тестов Testo.
  • HTTP-запросы и проверки ответов, JSON, перенаправлений и авторизации.
  • Инструменты для работы с базой данных, сессией, middleware и командами Artisan.
  • Обновление базы данных для тестов с использованием миграций и транзакций.
  • Команда php artisan laratesto:test для общего запуска тестов.

Общая команда сначала запускает Testo, затем Pest или PHPUnit, если они установлены в проекте. Так тесты можно переносить постепенно.

Переход из PHPUnit

В пакете есть инструменты для подготовки переноса существующих тестов и слой совместимости для части привычных проверок. Автоматический перенос помогает с повторяющимися изменениями; результат нужно просматривать и проверять, а неподдерживаемые конструкции разбирать вручную.

Как попробовать и что дальше

Пакет устанавливается через Composer. В актуальном README указаны требования PHP 8.3+, Laravel 13 и Testo, пример настройки плагина и варианты запуска.

Laratesto уже доступен, работу над ним продолжаю. Хочу сделать тестирование и постепенный переход на Testo удобнее; о развитии проекта буду рассказывать в блоге.

Исходники, установка и документация · Все мои проекты.

Поделиться с друзьями
Блог Ичи