Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Pest 5: Tia Engine, плагін для AI-агентів і evals для LLM
Новини 29 липня 2026

Pest 5: Tia Engine, плагін для AI-агентів і evals для LLM

На першому дні Laracon US 2026 у Бостоні Нуно Мадуро представив Pest 5 - нову мажорну версію тестового фреймворку. Реліз побудований на PHP 8.4 і PHPUnit 13, а головна його ідея звучить так: більшість тестів, які ви запускаєте, не мають стосунку до того, що ви щойно змінили.

Tia Engine: переганяємо лише те, що зачепили

Tia Engine (test impact analysis) - центральна можливість релізу. Після першого повного прогону движок запам'ятовує, які тести яких файлів торкаються. На кожному наступному запуску він дивиться, що ви змінили, переганяє лише пов'язані тести, а для решти віддає закешовані результати.

За даними команди Pest, набір, який раніше виконувався десять хвилин, відпрацьовує приблизно за чотири секунди - без втрати точності покриття коду.

  ./vendor/bin/pest --parallel --tia

Для роботи потрібен драйвер покриття - PCOV або Xdebug.

Плагін Agent: перевірка змін AI-агентом

Плагін Agent розрахований на сценарій, який став буденним: код пише агент, а перевіряти доводиться людині. Він дає AI-агентові одну команду, щоб переконатися, що зміна справді працює - причому всередині вашого реального набору тестів, а не в ізольованій пісочниці.

Якщо встановлено плагін браузерного тестування, агент може керувати й справжнім браузером.

  composer require pestphp/pest-plugin-agent --dev

Evals: тестуємо якість відповідей LLM

Плагін Evals розв'язує зворотну задачу - оцінити не код, а вивід моделі. Він поєднує детерміновані перевірки з оцінювачами на базі LLM, і все це через той самий expect(), яким ви користуєтеся у звичайних тестах.

  composer require pestphp/pest-plugin-evals --dev

Evals за замовчуванням пропускаються - щоб їх виконати, потрібен прапорець --evals. Це розумний компроміс: звернення до моделі коштують грошей і виконуються повільно, тож у звичайному прогоні їм не місце.

Плагіни для PHPStan і Rector

Тепер офіційні. PHPStan-плагін навчає аналізатор розуміти функціональний API Pest - it(), test(), expect() і поведінку $this всередині тестів. Раніше це доводилося обходити власними конфігурами або мовчазним ігноруванням помилок.

  composer require pestphp/pest-plugin-phpstan --dev
  composer require phpstan/phpstan --dev

Rector-плагін приносить набір правил для автоматичного осучаснення тестового коду.

  composer require pestphp/pest-plugin-rector --dev
  composer require rector/rector --dev

Шардинг за часом виконання

Якщо ви розкидаєте тести по кількох CI-машинах, Pest 5 ділить набір не за кількістю тестів, а за реальним часом їх виконання. Дані про тривалість збираються окремою командою:

  ./vendor/bin/pest --update-shards

Різниця відчутна там, де кілька повільних тестів раніше випадково збиралися на одному шарді й тримали весь пайплайн.

Нові матчери

Додали вісім перевірок для поширених форматів:

  • toBeEmail()
  • toBeUlid()
  • toBeIpAddress()
  • toBeMacAddress()
  • toBeHostname()
  • toBeDomain()
  • toBeBase64()
  • toBeHexadecimal()

Як оновитися

У composer.json:

  "pestphp/pest": "^5.0"

Усі плагіни, які підтримує команда Pest, теж варто підняти до ^5.0.

Головна вимога релізу - PHP 8.4 або новіший. Для проєктів на 8.2 чи 8.3 оновлення почнеться з підняття версії PHP, і це варто закласти в планування.

Підсумок

Pest 5 рухається у двох напрямах одночасно. Перший - швидкість: Tia Engine прибирає з прогону все, чого ви не торкалися, і це найпомітніша зміна в щоденній роботі. Другий - робота з AI: плагін для агентів і evals визнають, що тести тепер пишуть і перевіряють не лише люди.

Офіційний анонс - на pestphp.com.

0

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Laracon US 2026: відео першого дня вже доступне Рекомендовано
Новини 29 липня 2026

Laracon US 2026: відео першого дня вже доступне

У Бостоні стартував Laracon US 2026, і запис першого дня вже доступний. Головне з кейноуту: офіційний Laravel LSP для редакторів, Laravel Cloud деплоїть Hono, Flask, Go та Rails, Pest 5 із Tia Engine. Аарон Френсіс приєднався до команди Laravel.

Обробка зображень
Новини 24 липня 2026

Практичний посібник з обробки зображень в Laravel

Laravel 13.20 представив власний компонент обробки зображень Illuminate\Image. Тепер фреймворк пропонує вбудований fluent API для зміни розміру, обрізки, конвертації форматів, контролю якості та збереження результатів без сторонніх пакетів.

Вакансії за темою

Senior PHP Backend Developer (Laravel, AI-First)

Senior PHP Backend Developer для побудови масштабованих фінтех-сервісів на Laravel у швейцарському ринку нерухомості. Розробка чистого, тестованого коду на основі TDD, робота з Google Cloud Platform, оптимізація баз даних та API. Вимагається 5+ років досвіду PHP/Laravel, розуміння архітектури ПО та ефективне використання AI-інструментів (Claude, Cursor, Copilot) у розробці.

Foxstone
6 дн. тому

Senior PHP Backend Developer (AI-First) - Laravel

Senior PHP Backend Developer з фокусом на AI-інструменти. Розробка масштабованих Laravel backend-додатків з TDD підходом (Pest/PHPUnit), розгортання на GCP (Cloud Run, Cloud SQL), оптимізація бази даних та написання високобезпечного коду. Вимагається 5+ років досвіду PHP/Laravel, hands-on GCP, практичний досвід AI-агентів (Gemini, Copilot, Cursor) для прискорення розробки.

Equals 5
21 дн. тому

Team Lead (Web Platform)

Team Lead для веб-платформи на Laravel + Vue.js. Технічне керівництво стеком, лідерство команди з 2-3 повнозмістовних розробників, особливий фокус на фронтенді. Вимоги: 5+ років досвіду, експертиза Vue.js 3, сильні навички UX/дизайну, Laravel, лідерство, PostgreSQL, REST API, та розуміння AI-інструментів для розробки.

Пакети за темою

Bagisto

bagisto/bagisto

Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.

27,769 v2.4.8 12 15

Lang

laravel-lang/lang

Список 126 мов для Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova, Laravel Spark та Laravel UI.

7,779 15.33.1 8