template_cypress
v2.1.0
Published
[](https://gitlab.com/latamairlines/oper/emx/emx-tmpl/template-cypress/-/commits/master)
Readme
Template: Framework Cypress - [template-cypress]
Authors: TAEs LATAM
Tecnologías
Lista de tecnologías utilizadas en este proyecto:
- Node.js: Version >= 20.3.0
- npm: Version >= 9.6.7
- Cypress: Version >= 14.0.3
- Mochawesome: Para reportes de pruebas.
- Rimraf: Para limpieza de archivos temporales.
Descripción
El template-cypress es un framework de pruebas automatizadas basado en el framework de pruebas frontend Cypress. Está diseñado para simplificar la escritura y ejecución de pruebas automatizadas E2E (end-to-end) y se encuentra configurado para integrarse con pipelines CI/CD en GitLab. Este proyecto permite a los equipos de desarrollo y calidad automatizar casos de prueba de extremo a extremo (E2E), proporcionar informes detallados y cumplir con los altos estándares de calidad en sus entregas.
Funcionalidades clave
El template-cypress ofrece las siguientes características principales:
- Integración con Cypress: Permite escribir pruebas automatizadas de frontend.
- Pruebas E2E configurables por entorno: Soporte para entornos
dev,intg, ycert. - Linter para código Cypress: Utiliza
eslintpara garantizar la calidad de código. - Reportes automáticos con Mochawesome: Generación y fusión de informes de prueba.
- Scripts de gestión: Simplifica tareas como limpieza, ejecución en diferentes entornos y debugging.
- Integración CI/CD con GitLab: Soporte para pipelines automatizados.
Instalación
Clonar el repositorio y navega al directorio del proyecto:
git clone https://gitlab.com/latamairlines/oper/emx/emx-tmpl/template_cypress.git
cd template_cypressInstala las dependencias del proyecto:
npm installScripts disponibles
El archivo package.json contiene los siguientes scripts para ejecutar y gestionar las pruebas:
Limpieza
- Eliminar resultados y archivos temporales:
npm run cy:cleanInformaciones y verificaciones
- Info Cypress (verificar instalación y compatibilidad):
npm run cypress:info- Verificar instalación de Cypress:
npm run cypress:verifyEjecución de pruebas Cypress
- Abrir Cypress (en modo GUI) en diferentes entornos:
- Entorno
dev:
- Entorno
npm run cy:open:dev- Entorno
intg:
npm run cy:open:intg- Entorno
cert:
npm run cy:open:cert- Ejecutar todas las pruebas de manera "headless":
npm run cypress:run- Ejecutar pruebas Cypress en un entorno específico con reporter Mochawesome:
- Entorno
dev:
- Entorno
npm run cy:run:dev- Entorno
intg:
npm run cy:run:intg- Entorno
cert:
npm run cy:run:certDebugging
- Modo Debug con Cypress:
npm run cypress:debugLinter
- Eslint para garantizar calidad de código Cypress:
npm run lintConfiguración
Variables de entorno
El framework utiliza la variable CYPRESS_ENV para identificar el entorno en el que estás ejecutando las pruebas (dev, intg, cert). Puedes configurarla directamente en el comando o en un archivo .env (si está configurado en tu entorno).
Archivos esenciales
- Directorio
cypress/: Contiene todo el setup de las pruebas, incluyendo:cypress/e2e/: Pruebas E2E.cypress/fixtures/: Datos de prueba estáticos.cypress/plugins/: Plugins de Cypress.cypress/support/: Archivos de configuración global.
package.json: Contiene los scripts automatizados mencionados anteriormente.- Reportes: Los resultados se generan en
cypress/results/.
Ejecución en CI/CD
El framework está preconfigurado para ejecutarse en pipelines de GitLab CI/CD, utilizando el archivo .gitlab-ci.yml. Este archivo incluye:
- Instalación del entorno Node.js.
- Ejecución de pruebas Cypress E2E en modo "headless".
- Generación de reportes con Mochawesome.
Generación de reportes
Cypress está configurado para generar reportes usando el reporter mochawesome. Los resultados se ubican en el directorio cypress/results/ y se combinan en un único reporte visual utilizando:
marge cypress/results/output.json --reportDir cypress/results --inlineEjecución con Docker
El proyecto incluye un archivo Dockerfile configurado para ejecutar las pruebas de Cypress en un entorno contenedor. La imagen base utiliza cypress/browsers:latest e incluye las herramientas necesarias para ejecutar las pruebas, como jq.
Construir la imagen Docker
Puedes construir la imagen Docker utilizando el siguiente comando:
docker build -t template-cypress .Ejecutar las pruebas con Docker
- Ejecutar las pruebas en el navegador por defecto (Chrome) y ambiente
dev:
docker run --rm -v $(pwd):/app -w /app template-cypressEspecificar un entorno y navegador en el comando de ejecución:
Puedes personalizar las pruebas especificando el valor de los argumentos
CYPRESS_ENVyBROWSER. Por ejemplo:
docker run --rm -v $(pwd):/app -w /app \
-e CYPRESS_ENV=intg \
-e BROWSER=firefox \
template-cypressParámetros:
CYPRESS_ENV: Define el entorno donde se ejecutan las pruebas (dev,intg,cert, etc.).BROWSER: Permite elegir el navegador (chrome,firefox,edge, etc.).
Comando personalizado para integrarlo en pipelines:
En entornos CI, puedes integrar esta ejecución como parte de las etapas de prueba:
docker run --rm -v $(pwd):/app -w /app template-cypressNotas importantes
- El directorio actual (
$(pwd)) se monta en el contenedor en el directorio de trabajo/app. - Asegúrate de que los resultados de las pruebas y otros archivos importantes sean accesibles en el host (puedes configurarlo con volúmenes adicionales si necesario).
- Utiliza la variable
CYPRESS_ENVpara cambiar entre entornos de prueba. - El navegador especificado en el argumento
BROWSERdebe estar soportado por la imagen base.
Versionado del Template
Este template sigue estándares de Semantic Versioning, y su versión actual es 1.0.0.
- MAJOR: Cambios incompatibles.
- MINOR: Nuevas funcionalidades compatibles.
- PATCH: Correcciones de errores compatibles.
Referencias
- Cypress Documentation: Cypress.io
- Mochawesome Reporter: Mochawesome
- Cypress Docker Images: Cypress Docker
- Node.js Documentation: Node.js
