Variables de Entorno: Uso y Configuración en Cypress
Clase 12 de 29 • Curso de Cypress Avanzado
Resumen
¿Qué son las variables de entorno y para qué se utilizan?
Las variables de entorno son herramientas fundamentales en el desarrollo de software que permiten almacenar y gestionar información confidencial de manera segura. Son especialmente útiles para guardar credenciales, como nombres de usuario y contraseñas, que varían según el entorno en el que se trabaje, como producción o prueba. Usarlas evita el riesgo de exponer datos sensibles en el código fuente y facilita la gestión de parámetros que cambian según el ambiente.
¿Cómo acceder a las variables de entorno en el código?
Existen diversas formas de manejar las variables de entorno, cada una con sus ventajas y desventajas. Veamos algunos métodos y prácticas recomendadas para utilizarlas eficientemente en Cypress:
Acceso desde un archivo de configuración
Para comenzar, se puede definir un objeto en el archivo de configuración de Cypress que aloje las variables de entorno. Por ejemplo:
// Archivo de configuración
{
"env": {
"credentials": {
"user": "tu_usuario",
"password": "tu_contraseña"
}
}
}
Para acceder a estas variables, se utiliza Cypress.env
, permitiendo obtener uno o varios valores específicos con facilidad:
// Código para acceder a las variables
const user = Cypress.env('credentials').user;
const password = Cypress.env('credentials').password;
Ventajas:
- Simplicidad al tener todas las variables en un solo lugar.
- Facilidad para acceder a los valores desde el código.
Desventajas:
- Sensible a estar en el control de versiones, por lo que es crucial no exponerlas en repositorios públicos.
Uso de un archivo cypress.env.json
Otra opción es utilizar un archivo cypress.env.json
en la raíz del proyecto. Este archivo también almacena credenciales o cualquier otra variable necesaria:
// cypress.env.json
{
"credentials": {
"user": "usuario_erroneo",
"password": "contraseña_erronea"
}
}
Las variables en este archivo sobreescriben las del archivo de configuración cuando se encuentran, lo cual es importante tener en cuenta al diseñar pruebas.
Ventajas:
- Se puede excluir fácilmente en el control de versiones para mayor seguridad.
- Flexibilidad para diferentes equipos o ambientes al tener múltiples archivos
json
.
Desventajas:
- Las variables pueden sobreescribirse, siendo crucial su manejo cuidadoso.
Configuración de variables desde la terminal
También es posible establecer variables de entorno directamente desde la línea de comandos, lo que ofrece versatilidad en ciertos escenarios CI/CD:
export CYPRESS_variable_entorno=valor
npx cypress open
Este método es ideal para pipelines de integración continua donde los comandos de ejecución cambian con frecuencia.
Ventajas:
- No requiere manipulación de archivos de configuración.
- Integración eficiente con herramientas CI/CD como Jenkins.
Desventajas:
- Limitado a valores planos, sin posibilidad de manejar objetos JSON complejos.
Reflexiones finales
Las variables de entorno son una herramienta poderosa para proteger y manejar datos críticos en nuestros proyectos de manera flexible. Cada método tiene su lugar dependiendo de las necesidades del proyecto, el flujo de trabajo y las características del equipo. Al valorar las diferentes opciones, se puede optar por la estrategia que mejor se adapte a los objetivos de seguridad y eficiencia. ¡Continúa explorando y experimentando para encontrar la solución óptima para tu desarrollo en Cypress!