Cómo configurar Playwright con Next.js
Playwright es un marco de pruebas que permite automatizar Chromium, Firefox y WebKit con una sola API. Puede usarlo para escribir pruebas de extremo a extremo (E2E). Esta guía muestra cómo configurar Playwright con Next.js y escribir sus primeras pruebas.
Inicio rápido
La forma más rápida de comenzar es usar create-next-app
con el ejemplo with-playwright. Esto creará un proyecto Next.js con Playwright ya configurado.
Configuración manual
Para instalar Playwright, ejecute el siguiente comando:
Esto lo guiará a través de una serie de preguntas para configurar Playwright en su proyecto, incluyendo la creación de un archivo playwright.config.ts
. Consulte la guía de instalación de Playwright para obtener instrucciones paso a paso.
Creando su primera prueba E2E con Playwright
Cree dos nuevas páginas en Next.js:
Luego, agregue una prueba para verificar que la navegación funciona correctamente:
Nota importante: Puede usar
page.goto("/")
en lugar depage.goto("http://localhost:3000/")
, si agrega"baseURL": "http://localhost:3000"
al archivo de configuraciónplaywright.config.ts
.
Ejecutando sus pruebas con Playwright
Playwright simulará un usuario navegando por su aplicación usando tres navegadores: Chromium, Firefox y Webkit, lo que requiere que su servidor Next.js esté en ejecución. Recomendamos ejecutar las pruebas contra su código de producción para asemejarse más al comportamiento real de su aplicación.
Ejecute npm run build
y npm run start
, luego en otra ventana de terminal ejecute npx playwright test
para correr las pruebas de Playwright.
Nota importante: Alternativamente, puede usar la función
webServer
para que Playwright inicie el servidor de desarrollo y espere hasta que esté completamente disponible.
Ejecutando Playwright en Integración Continua (CI)
Playwright ejecutará sus pruebas en modo headless por defecto. Para instalar todas las dependencias de Playwright, ejecute npx playwright install-deps
.
Puede aprender más sobre Playwright e Integración Continua en estos recursos: