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 -ye instalar la dependenciacypress-craft.Correr
npx cypress-craft-inity seguir el asistente.Ajustar URLs y datos en la carpeta
fixtures.Crear o modificar clases en
pomsegún los escenarios.Escribir los pasos en
tests_enotests_esutilizando Cucumber.Lanzar las pruebas con
npm starty 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
Writersidepara 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.featurepara servicios REST.e2e.XX-descripcion.featurepara 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.