Cómo configurar Cypress con Next.js
Cypress es un ejecutor de pruebas utilizado para pruebas de extremo a extremo (E2E) y pruebas de componentes. Esta página te mostrará cómo configurar Cypress con Next.js y escribir tus primeras pruebas.
Advertencia:
- Las versiones de Cypress anteriores a la 13.6.3 no son compatibles con TypeScript versión 5 cuando se usa
moduleResolution:"bundler"
. Sin embargo, este problema se ha resuelto en Cypress versión 13.6.3 y posteriores. cypress v13.6.3
Inicio rápido
Puedes usar create-next-app
con el ejemplo with-cypress para comenzar rápidamente.
Configuración manual
Para configurar Cypress manualmente, instálalo como una dependencia de desarrollo:
Añade el comando open
de Cypress al campo scripts de package.json
:
Ejecuta Cypress por primera vez para abrir el conjunto de pruebas:
Puedes elegir configurar Pruebas E2E y/o Pruebas de Componentes. Seleccionar cualquiera de estas opciones creará automáticamente un archivo cypress.config.js
y una carpeta cypress
en tu proyecto.
Creando tu primera prueba E2E con Cypress
Asegúrate de que tu archivo cypress.config
tenga la siguiente configuración:
Luego, crea dos nuevos archivos en Next.js:
Añade una prueba para verificar que tu navegación funciona correctamente:
Ejecutando pruebas E2E
Cypress simulará un usuario navegando por tu aplicación, lo que requiere que tu servidor Next.js esté en ejecución. Recomendamos ejecutar las pruebas contra tu código de producción para asemejarte más al comportamiento real de tu aplicación.
Ejecuta npm run build && npm run start
para construir tu aplicación Next.js, luego ejecuta npm run cypress:open
en otra ventana de terminal para iniciar Cypress y ejecutar tu suite de pruebas E2E.
Consejo útil:
- Puedes usar
cy.visit("/")
en lugar decy.visit("http://localhost:3000/")
añadiendobaseUrl: 'http://localhost:3000'
al archivo de configuracióncypress.config.js
.- Alternativamente, puedes instalar el paquete
start-server-and-test
para ejecutar el servidor de producción de Next.js junto con Cypress. Después de la instalación, añade"test": "start-server-and-test start http://localhost:3000 cypress"
al campo scripts de tupackage.json
. Recuerda reconstruir tu aplicación después de nuevos cambios.
Creando tu primera prueba de componentes con Cypress
Las pruebas de componentes construyen y montan un componente específico sin necesidad de empaquetar toda tu aplicación o iniciar un servidor.
Selecciona Pruebas de Componentes en la aplicación Cypress, luego elige Next.js como tu framework front-end. Se creará una carpeta cypress/component
en tu proyecto y se actualizará el archivo cypress.config.js
para habilitar las pruebas de componentes.
Asegúrate de que tu archivo cypress.config
tenga la siguiente configuración:
Asumiendo los mismos componentes de la sección anterior, añade una prueba para validar que un componente renderiza el resultado esperado:
Consejo útil:
- Cypress actualmente no soporta pruebas de componentes para Server Components
async
. Recomendamos usar pruebas E2E.- Dado que las pruebas de componentes no requieren un servidor Next.js, características como
<Image />
que dependen de un servidor pueden no funcionar directamente.
Ejecutando pruebas de componentes
Ejecuta npm run cypress:open
en tu terminal para iniciar Cypress y ejecutar tu suite de pruebas de componentes.
Integración Continua (CI)
Además de las pruebas interactivas, también puedes ejecutar Cypress en modo headless usando el comando cypress run
, que es más adecuado para entornos de CI:
Puedes aprender más sobre Cypress e Integración Continua en estos recursos: