---
title: "Pest 5: Tia Engine, плагін для AI-агентів і evals для LLM"
url: https://laravelukraine.com/blog/pest-5-tia-engine-plagin-dlia-ai-agentiv-i-evals-dlia-llm
author: "Олексій Бабінцев"
date: 2026-07-29
---

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

### Нові матчери

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

- `toBeEmail()`
- `toBeUlid()`
- `toBeIpAddress()`
- `toBeMacAddress()`
- `toBeHostname()`
- `toBeDomain()`
- `toBeBase64()`
- `toBeHexadecimal()`

### Як оновитися

У `composer.json`:

```json
"pestphp/pest": "^5.0"
```

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

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

### Підсумок

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

Офіційний анонс - на [pestphp.com](https://pestphp.com/docs/pest5-now-available).
