Configuración de Variables de Entorno en Cypress

Clase 13 de 29Curso de Cypress Avanzado

Resumen

¿Cómo usar variables de entorno en Cypress?

En el mundo del desarrollo de software, manejar adecuadamente las variables de entorno es clave para configurar diferentes entornos de trabajo, sin modificar el código fuente entre uno y otro. En Cypress, la popular herramienta de testing para aplicaciones web, manejar estas variables puede ser sencillo y eficiente si se sabe cómo hacerlo. En este artículo, exploraremos algunos métodos esenciales para gestionar variables de entorno en Cypress y obtener el máximo provecho de ellas.

¿Cómo configurar variables de entorno en un describe específico?

Una de las ventajas de Cypress es la capacidad de limitar el alcance de las variables de entorno a un bloque de pruebas específico. Esto quiere decir que podemos definir variables que solo estarán disponibles en un describe particular, lo que resulta útil para pruebas específicas y evita la sobrescritura o duplicación en otras partes del código.

describe("Erróneo... Con... Configuración", {
  env: {
    usuarioErroneo: "error1",
    passwordErroneo: "error2"
  }
}, () => {
  beforeEach(() => {
    cy.visit('login_page_url');
  });

  it("Realiza un login erróneo", () => {
    // Realizamos la acción de login con credenciales erróneas
    cy.get('#login-field').type(Cypress.env('usuarioErroneo'));
    cy.get('#password-field').type(Cypress.env('passwordErroneo'));
    cy.contains('Iniciar sesión').click();

    // Verificamos error de login
    cy.get('.error-message').should('contain', 'Credenciales incorrectas');
  });
});

Este tipo de configuración ayuda a mantener un código limpio y centrado, siendo perfecto para pruebas unitarias o específicas que no deben afectar al resto de pruebas.

¿Cómo manejar variables de entorno del sistema en Cypress?

Muchas veces, al trabajar en diferentes entornos (desarrollo, prueba, producción), necesitamos acceder a las variables de entorno del sistema. Cypress ofrece la capacidad de configurar adecuadamente estas variables a través de JavaScript.

const config = {
  env: {
    variable: process.env.NODE_ENV || "No hay variable"
  }
};

// Asegúrate de retornar la configuración al final del setup de eventos
module.exports = (on, config) => {
  return config;
};

Para configurar adecuadamente estas variables, en un sistema Mac puede usarse export para establecer una variable en el entorno antes de correr Cypress:

export NODE_ENV=development && npx cypress open

En Windows, la sintaxis varía ligeramente:

set NODE_ENV=development&& npx cypress open

Este enfoque permite que las pruebas se adapten automáticamente a variables específicas del sistema, haciendo que el flujo de desarrollo sea más ágil y menos propenso a errores humanos.

¿Por qué son importantes las variables de entorno en Cypress?

Las variables de entorno ofrecen una manera flexible de controlar distintos aspectos del comportamiento de nuestra aplicación y de las pruebas:

  • Portabilidad: Permiten que el mismo conjunto de pruebas se ejecute en diferentes entornos sin cambios en el código.
  • Configuración centralizada: Facilitan la administración de configuraciones sensibles y de autenticación sin enredarlas en el código.
  • Seguridad: Ayudan a mantener datos sensibles fuera del código fuente.

Con Cypress, puedes elegir la mejor estrategia que se adapte a tu flujo de trabajo, garantizando así que tus pruebas sean tanto eficientes como efectivas. No dudes en experimentar con estas configuraciones y adaptarlas según necesidades específicas. ¡Feliz coding!