03/09La actualización a Laravel 12Actualizar Pest 2 a Pest 3 (PHPUnit 11) con el proyecto en Laravel 11
0%Tu lecturaQuedan 12 min
Lección 3 de 9· La actualización a Laravel 12
Actualizar Pest 2 a Pest 3 (PHPUnit 11) con el proyecto en Laravel 11
12 min de lecturaLaravel 12
Hola, bienvenido. En esta lección vamos a dar el primer paso del plan: actualizar Pest 2 a Pest 3, que funciona sobre PHPUnit 11, con el proyecto todavía en Laravel 11.
Y vamos a aprovechar para dejar los tests como están en el esqueleto: tests/Pest.php con la función pest(), que es la forma de configurar Pest 3, y sin el trait CreatesApplication, que sobra desde Laravel 11.
01
Pest 3 y su plugin en composer.json
La guía oficial de Laravel 12 sube pestphp/pest a ^3.0, y la guía de actualización de Pest 3 añade que todos los plugins de Pest tienen que pasar también de la versión 2 a la 3. En este proyecto el único es pest-plugin-laravel, así que son 2 líneas de require-dev en composer.json:
composer.jsonModificado+2−2
1{
2"name": "laravel/laravel",
3"type": "project",
4"description": "The skeleton application for the Laravel framework.",
78"PKSA-mdq4-51ck-6kdq": {"on-audit": false, "reason": "Sin parche en Laravel 11, corregido en la 12.60. Quitar al subir a Laravel 12."},
79"PKSA-3r5d-mb8f-1qw9": {"on-audit": false, "reason": "Sin parche en Laravel 11, corregido en la 12.60. Quitar al subir a Laravel 12."},
80"PKSA-m5cs-t1y6-qpcs": {"on-audit": false, "reason": "Sin parche en Laravel 11, corregido en la 12.61.1. Quitar al subir a Laravel 12."},
81"PKSA-d5tc-s1qs-h781": {"on-audit": false, "reason": "Sin parche en Laravel 11, corregido en la 12.69. Quitar al subir a Laravel 12."}
82 }
83 }
84 }
85 },
86"minimum-stability": "stable",
87"prefer-stable": true
88}
La guía de Pest también exige Collision 8, que el proyecto ya tiene con ^8.1. Vamos a resolver las dependencias con -W (--with-all-dependencies), que permite a Composer subir también las dependencias de nuestras dependencias, como PHPUnit o Collision. 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: Pest 3.8, pest-plugin-laravel 3.2, PHPUnit 11.5 con sus componentes de sebastian/*, y Collision 8.9, que es la versión mínima que exige esta versión de Pest 3 y que ya admite Laravel 12. laravel/framework no aparece en la lista: sigue en la versión 11.57.
¿Y el error de Composer por los avisos de seguridad? No ha aparecido gracias a las 4 excepciones de composer.json: sin ellas, este update -W habría fallado. Los 4 avisos que cuenta al final son esos mismos.
Antes de cambiar ningún archivo de los tests, vamos a comprobar que Pest 3 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.58s
Los mismos 82 tests en verde, ahora sobre PHPUnit 11.
Lo que queda de esta lección
02Lo que cambia en Pest 3
03tests/Pest.php con la función pest()
04tests/CreatesApplication.php sobra desde Laravel 11
05composer qa en verde y el commit
Sigue leyendo con tu suscripciónEl curso completo, con el certificado y el foro, está incluido en la suscripción.Ver los planes¿Ya tienes cuenta? Entra
Usamos cookies propias necesarias para que la plataforma funcione y, solo con tu permiso, cookies de analítica para entender cómo se usa la web. No usamos cookies publicitarias.
Más información.
Preferencias de cookies
Elige qué cookies quieres permitir. Puedes cambiarlo cuando quieras.
NecesariasImprescindibles para iniciar sesión, recordar tu sesión y proteger los formularios. No se pueden desactivar.
Siempre activas
Google Analytics, para medir de forma agregada cómo se usa la plataforma y mejorarla.