UNPKG

cypress-craft

Version:

CypressCraft is an innovative extension built on top of Cypress (Cypress + Cucumber + POM)

68 lines (51 loc) 3.43 kB
# Guía Completa de CypressCraft Esta guía ofrece una visión integral de **CypressCraft**, la librería que extiende a [Cypress](https://www.cypress.io/) 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](https://www.npmjs.com/package/cypress-cucumber-preprocessor) 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: ``` cypress/ ├─ common/ # step definitions y helpers ├─ fixtures/ # urls, datos y variables dinámicas ├─ pom/ # clases POM para API y E2E ├─ settings/ # configuración de Cucumber y utilidades ├─ support/ # comandos custom de Cypress ├─ tests_en/ # features de ejemplo en inglés └─ tests_es/ # features de ejemplo en español scripts/ └─ post-install.js # asistente de configuración ``` 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 1. Ejecutar `npm init -y` e instalar la dependencia `cypress-craft`. 2. Correr `npx cypress-craft-init` y seguir el asistente. 3. Ajustar URLs y datos en la carpeta `fixtures`. 4. Crear o modificar clases en `pom` según los escenarios. 5. Escribir los pasos en `tests_en` o `tests_es` utilizando Cucumber. 6. 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: ```bash # language: es ``` 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.