🎃 12 meses por 75 €

El plan anual a mitad de precio hasta el 31 de octubre.

Aprovechar la oferta

🎃 Halloween: 12 meses por 75 €

Plan anual a mitad de precio, para altas y renovaciones. Solo hasta el 31 de octubre.
Aprovechar la oferta
Saltar al contenido
Curso Actualizar un proyecto de Laravel 12 a Laravel 13
04/08 Antes de tocar nada Actualizar Pest 3 a Pest 4 (PHPUnit 12) y Tinker 3 con el proyecto en Laravel 12
Tu lectura Quedan 10 min
Lección 4 de 8 · Antes de tocar nada

Actualizar Pest 3 a Pest 4 (PHPUnit 12) y Tinker 3 con el proyecto en Laravel 12

10 min de lectura Laravel 13

Hola, bienvenido. En esta lección vamos a actualizar Pest 3 a Pest 4, que funciona sobre PHPUnit 12, y Tinker 2 a Tinker 3, con el proyecto todavía en Laravel 12. Laravel 13 exige los 2, pero ninguno de los 2 exige Laravel 13: el plugin de Laravel de Pest 4 admite Laravel 12 desde la versión 12.52, y Tinker 3 también admite Laravel 12.

Así que podemos subirlos ahora y comprobar que los tests siguen en verde. Es el segundo paso del plan, y el último antes de cambiar el framework.

Pest 4, su plugin y Tinker 3 en composer.json

La guía oficial de Laravel 13 sube pestphp/pest a ^4.0 y laravel/tinker a ^3.0, y la guía de actualización de Pest 4 (se abre en una pestaña nueva) añade que todos los plugins de Pest tienen que pasar también de la versión 3 a la 4. En este proyecto el único es pest-plugin-laravel, así que son 3 líneas del archivo composer.json:

composer.json Modificado +3 −3
9 "guzzlehttp/guzzle": "^7.2",
10 "laravel/framework": "^12.0",
11 "laravel/sanctum": "^4.0",
− "laravel/tinker": "^2.8",
+ "laravel/tinker": "^3.0",
13 "livewire/livewire": "^3.4",
14 "spatie/laravel-permission": "^6.0"
15 },
22 "laravel/sail": "^1.26",
23 "mockery/mockery": "^1.4.4",
24 "nunomaduro/collision": "^8.1",
− "pestphp/pest": "^3.0",
− "pestphp/pest-plugin-laravel": "^3.0",
+ "pestphp/pest": "^4.0",
+ "pestphp/pest-plugin-laravel": "^4.0",
27 "rector/rector": "^2.0",
28 "spatie/laravel-ignition": "^2.0"
29 },

PHPUnit 12, que también indica la guía, llega como dependencia de Pest. Vamos a resolver las dependencias con -W, como en la lección anterior, para que Composer pueda actualizar PHPUnit de la versión 11 a la 12 y el resto de la familia de Pest. Esta es la salida el 21 de octubre de 2026 (las versiones pueden cambiar cuando lo lances tú):

Terminal
sail composer update -W
Salida
Loading composer repositories with package information Updating dependencies Lock file operations: 3 installs, 27 updates, 2 removals - Removing sebastian/code-unit (3.0.3) - Removing sebastian/code-unit-reverse-lookup (4.0.1) - Upgrading brianium/paratest (v7.8.6 => v7.20.0) - Locking composer/pcre (3.4.0) - Locking composer/xdebug-handler (3.0.5) - Upgrading laravel/tinker (v2.11.1 => v3.0.2) - Upgrading pestphp/pest (v3.8.7 => v4.7.8) - Upgrading pestphp/pest-plugin (v3.0.0 => v4.0.0) - Upgrading pestphp/pest-plugin-arch (v3.1.1 => v4.0.2) - Upgrading pestphp/pest-plugin-laravel (v3.2.0 => v4.1.0) - Upgrading pestphp/pest-plugin-mutate (v3.0.5 => v4.0.1) - Locking pestphp/pest-plugin-profanity (v4.2.1) - Upgrading phpunit/php-code-coverage (11.0.12 => 12.5.8) ... - Upgrading phpunit/phpunit (11.5.56 => 12.5.33) ... - Upgrading theseer/tokenizer (1.3.1 => 2.0.1) Writing lock file ... No security vulnerability advisories found.

Todo lo que ha cambiado es la familia de Pest y PHPUnit, más Tinker: Pest 4.7 con sus plugins en la versión 4, PHPUnit 12.5 con sus componentes de sebastian/*, y Tinker 3.0. Entran 3 paquetes nuevos, los 3 porque son dependencias de Pest 4: pest-plugin-profanity, que añade la opción --profanity para buscar palabras malsonantes en el código, composer/xdebug-handler y composer/pcre, que es una dependencia del anterior. Y salen 2 componentes de sebastian/* que PHPUnit 12 ya no usa. laravel/framework no aparece en la lista: sigue en Laravel 12.

Antes de nada, vamos a comprobar que Pest 4 ejecuta la suite tal como está:

Terminal
sail test
Salida
PASS Tests\Unit\SlaTest ✓ the due date depends on the priority with dataset "high" 0.02s ... Tests: 82 passed (175 assertions) Duration: 5.48s

Los mismos 82 tests en verde, ahora sobre PHPUnit 12.

Lo que queda de esta lección
  1. 02Lo que cambia en Pest 4
  2. 03Tinker 3
  3. 04composer qa en verde y el commit
Sigue leyendo con tu suscripción El curso completo, con el certificado y el foro, está incluido en la suscripción. Ver los planes