Pest 5: TIA Engine, Agent Plugin &amp; Evals | Mohamed Said       [Skip to content](#main)  [ ![](https://cdn.msaied.com/01KT78WE565VEMM3PSNQAAB0MH.png) Mohamed SaidLaravel Backend Engineer ](https://www.msaied.com/public) - [Home](https://www.msaied.com/public)
- [Projects](https://www.msaied.com/public/projects)
- [Articles](https://www.msaied.com/public/articles)
- [Certificates](https://www.msaied.com/public/certificates)
- [About](https://www.msaied.com/public#about)

           [  Contact](https://www.msaied.com/public#contact) Menu 

Menu
----

Close 

 - [HomeStart here](https://www.msaied.com/public)
- [ProjectsCase studies](https://www.msaied.com/public/projects)
- [ArticlesEngineering notes](https://www.msaied.com/public/articles)
- [CertificatesCredentials](https://www.msaied.com/public/certificates)
- [AboutHow I work](https://www.msaied.com/public#about)
- [ContactGet in touch](https://www.msaied.com/public#contact)

  [Start a conversation](https://www.msaied.com/public#contact) [WhatsApp](https://wa.me/201094619204) [Email](mailto:hello@msaied.com) 

 1. [Home](https://www.msaied.com/public)
2. /
3. [Articles](https://www.msaied.com/public/articles)
4. /
5. [Laravel](https://www.msaied.com/public/articles?category=laravel)
6. /
7. Pest 5 Released: Test Impact Analysis, Agent Verification, and Evals

   [Laravel](https://www.msaied.com/public/articles?category=laravel) [PHP](https://www.msaied.com/public/articles?category=php) 

 Pest 5 Released: Test Impact Analysis, Agent Verification, and Evals
=====================================================================

 Pest 5 ships with the TIA engine that cut Laravel Cloud's 19,000-test suite from 3 minutes to 5 seconds, plus first-party plugins for AI agent verification, LLM evals, PHPStan, and Rector. Requires PHP 8.4 and PHPUnit 13.

 ![](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp) [Mohamed Said](https://www.msaied.com/public#person) Published 31 Jul 2026 · Updated 4 Aug 2026 · 4 min read

ShareCopy linkCopied

 ![Pest 5 Released: Test Impact Analysis, Agent Verification, and Evals](https://cdn.msaied.com/507/be3c00af9b9adb7fbcb2ca1758ae0002.png) 

  On this page +1. [What's New at a Glance](#whats-new-at-a-glance)
2. [Test Impact Analysis With the TIA Engine](#test-impact-analysis-with-the-tia-engine)
3. [Verifying AI Agent Changes With the Agent Plugin](#verifying-ai-agent-changes-with-the-agent-plugin)
4. [Testing LLM Output With Evals](#testing-llm-output-with-evals)
5. [PHPStan and Rector Plugins](#phpstan-and-rector-plugins)
6. [Upgrading to Pest 5](#upgrading-to-pest-5)
7. [Key Takeaways](#key-takeaways)

 Nuno Maduro announced **Pest v5** on stage at Laracon US 2026 in Boston and tagged `v5.0.0` during the conference. The headline feature is the TIA (Test Impact Analysis) engine, which slashed Laravel Cloud's 19,000-test suite from 3 minutes down to 5 seconds. The release also bundles first-party plugins for AI agents, LLM evaluation, PHPStan, and Rector.

What's New at a Glance
----------------------

- **TIA Engine** — re-runs only affected tests; replays cached results for the rest
- **Agent plugin** — gives AI coding agents a single command to verify changes inside a real test suite
- **Evals plugin** — scores LLM output with deterministic checks and AI-powered scorers
- **PHPStan plugin** — teaches PHPStan about `it()`, `test()`, `expect()`, and `$this` in test closures
- **Rector plugin** — 60 rules to rewrite assertions as Pest matchers and handle major version upgrades
- **New expectations** for emails, ULIDs, IP addresses, MAC addresses, and more
- **PHP 8.4 and PHPUnit 13** as the new baseline

Test Impact Analysis With the TIA Engine
----------------------------------------

The TIA engine records which tests touch which files on the first run, then executes only the tests affected by your latest changes and replays cached results for everything else.

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

```

A typical summary looks like this:

```yaml
Tests:    774 passed (2658 assertions, 7 affected, 2 uncached, 765 replayed)
Duration: 3.92s

```

Cached results preserve coverage data, so `--coverage` reports and `--min` thresholds behave as if the full suite ran. The dependency graph understands migrations, Blade templates, Inertia/Vite module graphs, and Livewire components — no configuration needed. Pest also normalizes files before hashing them, so a Pint formatting pass or a comment edit produces an identical hash and runs nothing.

> **Note:** The TIA engine requires PCOV or Xdebug to record its baseline. CI baseline sharing requires an authenticated GitHub CLI and only works on GitHub.

Configure TIA behaviour in `tests/Pest.php`:

```php
pest()->tia()
    ->always()
    ->locally()
    ->baselined()
    ->filtered();

```

Verifying AI Agent Changes With the Agent Plugin
------------------------------------------------

The Agent plugin gives coding agents a way to confirm their changes actually work inside your real test suite, complete with factories, `RefreshDatabase`, and Laravel fakes:

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

```

```bash
./vendor/bin/pest --agent='$user = \App\Models\User::factory()->create(); $this->actingAs($user)->get("/dashboard")->assertOk();'

```

Each snippet runs as an isolated test named "verify". This is designed for quick feedback during development, not as a replacement for committed regression tests.

Testing LLM Output With Evals
-----------------------------

The Evals plugin scores LLM output quality using the familiar `expect()` API:

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

```

```php
it('answers capital city questions correctly', function (): void {
    expect(CapitalCityAgent::class)
        ->prompt('What is the capital of France?')
        ->toContain('Paris')          // deterministic
        ->toBeRelevant()              // LLM-as-judge
        ->toBeSimilar('Paris, France'); // semantic similarity
});

```

Evals are skipped on a normal run and only execute when you pass `--evals`. Scored expectations accept a threshold between 0.0 and 1.0 (default 0.7). Available scorers include `toBeRelevant()`, `toBeSafe()`, `toBeFactual()`, `toBeSimilar()`, `toPassJudge()`, `toHaveToolCalls()`, and `toFollowTrajectory()`.

PHPStan and Rector Plugins
--------------------------

The **PHPStan plugin** reads your `Pest.php` configuration to resolve `$this` types inside test closures, narrows types through expectation chains, and catches impossible expectations like `expect(10)->toStartWith('1')`.

The **Rector plugin** ships 60 rules across coding style and version upgrade sets. A quick example of what it rewrites:

```php
// Before
expect(count($array))->toBe(5);
expect(array_key_exists('id', $array))->toBeTrue();

// After
expect($array)->toHaveCount(5)
    ->toHaveKey('id');

```

Preview changes safely with `vendor/bin/rector process --dry-run`.

Upgrading to Pest 5
-------------------

Pest 5 requires PHP 8.4 and PHPUnit 13. The Pest upgrade guide documents no API-level breaking changes beyond the version bumps. For most projects it is a one-line change:

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

```

Update any Pest-maintained plugins to `^5.0` at the same time.

Key Takeaways
-------------

- The TIA engine can reduce large suite runtimes dramatically by replaying cached results
- The Agent plugin is purpose-built for AI coding agent workflows, not general regression testing
- Evals run only on demand (`--evals`) so they never add cost to a standard CI run
- PHPStan and Rector plugins are now first-party and installable via Composer
- Upgrading from Pest 4 is straightforward; PHPUnit 13 compatibility is the main consideration

---

*Source: [Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals — Laravel News](https://laravel-news.com/pest-5)*

- [Pest PHP](https://www.msaied.com/public/articles?search=Pest%20PHP)
- [PHP Testing](https://www.msaied.com/public/articles?search=PHP%20Testing)
- [Test Impact Analysis](https://www.msaied.com/public/articles?search=Test%20Impact%20Analysis)
- [Laravel](https://www.msaied.com/public/articles?search=Laravel)
- [PHPUnit](https://www.msaied.com/public/articles?search=PHPUnit)
- [AI Testing](https://www.msaied.com/public/articles?search=AI%20Testing)

 Frequently asked questions 
---------------------------

  Does the TIA engine skip tests, or does it still count them toward coverage?The TIA engine replays cached results rather than skipping tests. Each cached result stores the exact lines and branches the test covered, so --coverage reports and --min thresholds behave as though the full suite ran.

   What does the Pest 5 Agent plugin actually do, and when should I use it?The Agent plugin adds an --agent option that runs a code snippet inside a full Pest test environment, with factories, RefreshDatabase, and Laravel fakes available. It is designed to give AI coding agents a quick way to verify that a change works, not to replace committed regression tests.

   What are the minimum requirements to upgrade to Pest 5?Pest 5 requires PHP 8.4 or greater and PHPUnit 13. The TIA engine additionally requires PCOV or Xdebug to record its baseline. Pest itself has no API-level breaking changes beyond the version bumps.

   ![Mohamed Said](https://cdn.msaied.com/01M22N44A70A5MC2S599JP0MPH.webp)About the author
----------------

[Mohamed Said](https://www.msaied.com/public#person)Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

[About](https://www.msaied.com/public#about) [GitHub ↗](https://github.com/EG-Mohamed) [LinkedIn ↗](https://www.linkedin.com/in/msaiedm/) [WhatsApp ↗](https://wa.me/201094619204) [Email Address ↗](mailto:hello@msaied.com) [My CV ↗](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)  

   [Previous articleJob Batching, Chaining, and Rate-Limited Middleware in Laravel Queues](https://www.msaied.com/public/articles/job-batching-chaining-and-rate-limited-middleware-in-laravel-queues-3) [Next articleCursor Pagination, Lazy Collections, and Chunked Iteration at Scale in Laravel](https://www.msaied.com/public/articles/cursor-pagination-lazy-collections-and-chunked-iteration-at-scale-in-laravel-1)  

   On this page
-------------

1. [What's New at a Glance](#whats-new-at-a-glance)
2. [Test Impact Analysis With the TIA Engine](#test-impact-analysis-with-the-tia-engine)
3. [Verifying AI Agent Changes With the Agent Plugin](#verifying-ai-agent-changes-with-the-agent-plugin)
4. [Testing LLM Output With Evals](#testing-llm-output-with-evals)
5. [PHPStan and Rector Plugins](#phpstan-and-rector-plugins)
6. [Upgrading to Pest 5](#upgrading-to-pest-5)
7. [Key Takeaways](#key-takeaways)

 ###  Have a technical challenge?

 Tell me what you’re building. I reply within two working days.

[Start a conversation](https://www.msaied.com/public#contact) 

   Related articles
-----------------

 [ ![](https://cdn.msaied.com/740/cce86edc21eddcbdd2f2454fadaf9c70.png)  · 3 min read### The Pipeline Pattern in Laravel: Custom Pipelines Beyond Middleware

5 Oct 2026 ](https://www.msaied.com/public/articles/the-pipeline-pattern-in-laravel-custom-pipelines-beyond-middleware-1) [ ![](https://cdn.msaied.com/739/2d6897fdcdcf090613f96f72a64b8a78.png)  · 4 min read### MySQL Full-Text Search in Laravel: Indexes, Relevance Scoring, and Boolean Mode

4 Oct 2026 ](https://www.msaied.com/public/articles/mysql-full-text-search-in-laravel-indexes-relevance-scoring-and-boolean-mode) [ ![](https://cdn.msaied.com/738/073696a3fefe18bec825beec5ac658f5.png)  · 4 min read### Laravel Queue Rate-Limited Middleware: Throttling Jobs Without Losing Work

4 Oct 2026 ](https://www.msaied.com/public/articles/laravel-queue-rate-limited-middleware-throttling-jobs-without-losing-work) 

  Have a technical challenge?
----------------------------

Tell me what you’re building. I reply within two working days.

 [Discuss your project ↗](https://www.msaied.com/public#contact) 

  © 2026 Mohamed Said · Built with Laravel, meant to last.Senior Backend Engineer specializing in Laravel, scalable SaaS platforms, APIs, and cloud infrastructure. I build secure, high-performance web applications that help businesses grow.

 - [Home](https://www.msaied.com/public)
- [Articles](https://www.msaied.com/public/articles)
- [Certificates](https://www.msaied.com/public/certificates)
- [GitHub](https://github.com/EG-Mohamed)
- [LinkedIn](https://www.linkedin.com/in/msaiedm/)
- [WhatsApp](https://wa.me/201094619204)
- [Email Address](mailto:hello@msaied.com)
- [My CV](https://drive.google.com/file/u/0/d/1MF20IPRJyzfy32mhEutjL5EpSls0w2Q8/view)
- [Sitemap](https://www.msaied.com/public/sitemap.xml)
