Что нового в Pest 3 и как его обновить

Источник: «What's new in Pest 3 and how to upgrade»
Повысьте уровень тестирования PHP с помощью 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, можете использовать пресет 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

Я запустил это в своём проекте, и вот как это выглядит:

Мутационные тесты Pest 3 в действии.
Мутационные тесты Pest 3 в действии.

Как видите, это катастрофа. Но в своё оправдание скажу, что это новый проект и работа идёт полным ходом!

Дополнительную информацию и подробную документацию можно найти в GitHub-репозитории Pest Mutate Plugin.

Управление Todo с GitHub

Ещё одна интригующая функция, которая появится в Pest 3, — это управление todo, интегрированное с GitHub.

Хотя конкретные детали пока неясны, похоже, это может стать отличным способом отслеживания задач и улучшений прямо из набора тестов. Представьте, что сможете отмечать области, требующие внимания, и автоматически синхронизировать их с GitHub Issues — такой бесшовный рабочий процесс всегда радует.

Обязательно сообщу подробности, как только получу больше информации о том, как работает эта функция и как её можно использовать в своих проектах.

Дополнительные материалы

Предыдущая Статья

Советы по Моделям Laravel

Следующая Статья

Пресеты архитектурного тестирования в Pest 3