Что нового в Pest 3 и как его обновить
Введение
Pest, мой любимый фреймворк для PHP-тестирования, только что выпустил третью версию, и мне не терпелось погрузиться в неё и поделиться с вами своими мыслями.
Самое простое обновление
Прежде чем перейти к новым интересным возможностям, давайте поговорим об обновлении. Спойлер: это до смешного просто. Всё, что нужно сделать, это поднять зависимость до ^3.x-dev
и изменить minimum-stability
на dev
в файле composer.json
. И всё! Никаких ломающих изменений, никакого утомительного рефакторинга — просто плавный переход на последнюю и самую лучшую версию Pest.
{
"require-dev": {
"pestphp/pest": "^3.x-dev"
}
}
Запустите composer update
, и всё готово. А теперь давайте узнаем, что нового в Pest 3!
Что нового в Pest 3
Пресеты архитектурного тестирования
Одной из отличительных особенностей Pest 3 стало появление пресетов архитектурного тестирования. Это мощный инструмент, позволяющий внедрять архитектурные правила и лучшие практики в кодовую базу. И самое приятное, что их не нужно писать самим!
Pest 3 поставляется с несколькими пресетами в комплекте:
- Laravel
- PHP
- Relaxed
- Security
- Strict
Использовать эти пресеты так же просто, как вызвать метод. Например, если работаете над проектом Laravel, можете использовать пресет Laravel следующим образом:
arch()->preset()->laravel();
Это позволит применить набор архитектурных правил, разработанных специально для Laravel приложений, и поможет поддерживать чистую и последовательную кодовую базу.
Но что делать, если необходимо сделать исключение? Pest 3 позаботился об этом. Можно исключить определённые файлы или пространства имён с помощью метода ignoring()
. Например:
arch()->preset()->laravel()->excluding('App\Models\Scopes');
Такая гибкость позволяет придерживаться рекомендаций и при этом учитывать уникальные потребности вашего проекта.
Подробнее о пресетах архитектурного тестирования в Pest 3 можно узнать в статье Пресеты архитектурного тестирования в Pest 3.
Мутационное тестирование: насколько надёжны ваши тесты
В Pest 3 появилось мутационное тестирование! Эта возможность повышает надёжность тестовых наборов путём внесения небольших изменений в код и запуска тестов с этими мутировавшими версиями.
Чтобы приступить к мутационному тестированию, установите плагин:
composer require pestphp/pest-plugin-mutate --dev
После установки можно запускать мутационные тесты с помощью этой простой команды:
./vendor/bin/pest --mutate
Я запустил это в своём проекте, и вот как это выглядит:
Как видите, это катастрофа. Но в своё оправдание скажу, что это новый проект и работа идёт полным ходом!
Дополнительную информацию и подробную документацию можно найти в GitHub-репозитории Pest Mutate Plugin.
Управление Todo с GitHub
Ещё одна интригующая функция, которая появится в Pest 3, — это управление todo, интегрированное с GitHub.
Хотя конкретные детали пока неясны, похоже, это может стать отличным способом отслеживания задач и улучшений прямо из набора тестов. Представьте, что сможете отмечать области, требующие внимания, и автоматически синхронизировать их с GitHub Issues — такой бесшовный рабочий процесс всегда радует.
Обязательно сообщу подробности, как только получу больше информации о том, как работает эта функция и как её можно использовать в своих проектах.