Guía Completa de CypressCraft
Esta guía ofrece una visión integral de CypressCraft, la librería que extiende a Cypress para facilitar la automatización de pruebas E2E y API.
Propósito del proyecto
CypressCraft surge de la necesidad de contar con un entorno de pruebas unificado y fácil de escalar. Combina buenas prácticas, integración con Cucumber y un modelo de páginas (POM) que reduce la duplicidad de código.
Su objetivo principal es simplificar la configuración de proyectos, centralizar los datos de prueba y permitir una transición fluida entre entornos y tipos de pruebas (frontend o backend).
Características clave
Instalación guiada mediante el comando
cypress-craft-init
.Estructura predefinida de carpetas para API y E2E.
Soporte multi‑ambiente y manejo de datos dinámicos.
Integración con Cucumber para definir pruebas en lenguaje natural.
Plantillas de POM listas para usar.
Generación de reportes HTML con
multiple-cucumber-html-reporter
.
Arquitectura general
El proyecto instalado queda organizado del siguiente modo:
La personalización se realiza editando cypress.config.js
, donde se indica el ambiente de ejecución y la ruta de las pruebas.
Flujo de trabajo recomendado
Ejecutar
npm init -y
e instalar la dependenciacypress-craft
.Correr
npx cypress-craft-init
y seguir el asistente.Ajustar URLs y datos en la carpeta
fixtures
.Crear o modificar clases en
pom
según los escenarios.Escribir los pasos en
tests_en
otests_es
utilizando Cucumber.Lanzar las pruebas con
npm start
y seleccionar el feature.
Buenas prácticas
Mantener separados los POM de API y E2E para una mejor mantenibilidad.
Reutilizar funciones comunes en
main.pom.js
.Usar variables dinámicas (
#VAR#
) para datos que cambian según el entorno.Versionar la carpeta
Writerside
para conservar la documentación junto al código.
Convenciones para archivos .feature
Los archivos que describen los escenarios siguen una nomenclatura consistente para facilitar su identificación:
api.XX-descripcion.feature
para servicios REST.e2e.XX-descripcion.feature
para flujos de interfaz.
Cada feature comienza opcionalmente con la directiva de idioma, por ejemplo:
Dentro de cada feature se recomienda incluir un Background
con la inicialización del Page Object Model y escribir escenarios breves que reflejen un objetivo específico.
Integración continua
CypressCraft puede integrarse con cualquier servicio de CI/CD que ejecute Node.js. Asegura instalar las dependencias, ejecutar cypress-craft-init
en modo no interactivo y usar el reporte HTML para revisar resultados en el pipeline.
Para más detalles consulta los otros temas de esta sección.