Actualizar Pest 3 a Pest 4 (PHPUnit 12) y Tinker 3 con el proyecto en Laravel 12
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:
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ú):
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á:
Los mismos 82 tests en verde, ahora sobre PHPUnit 12.
- 02Lo que cambia en Pest 4
- 03Tinker 3
- 04composer qa en verde y el commit