Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

769
Visualizações
Nx e2e cypress runner: los valores de las entradas de cypress.env.json no sobrescriben las mismas entradas en el objeto cypress.json env

Tengo un proyecto angular alimentado por Nx y me enfrento a un problema en el que los valores proporcionados en un archivo cypress.env.json no anulan las entradas correspondientes en el objeto env del archivo de configuración cypress.json

Esta es la primera vez que intento esto con un proyecto impulsado por Nx, en un proyecto angular que no es Nx, este comportamiento funciona de manera inmediata con Cypress.

Pasos para reproducir

En el archivo cypress.json de una aplicación cypress.json , agregue una propiedad de objeto env con un valor vacío asignado a una propiedad de nombre de variable:

 // cypress.json "env": { "MY_VAR": "abc" }

Cree un archivo cypress.env.json en la misma ubicación que cypress.json con una clave que coincida con el nombre de la variable env que acaba de agregar a cypress.json:

 // cypress.env.json { "MY_VAR": "xyz" }

Ahora cree un conjunto de pruebas simple para afirmar que la variable env es igual al valor en cypress.env.json

 // create a test spec containing this describe('When reading the MY_VAR env variable', () => { it('should match the value in our cypress.env.json file', () => { cy.log('MY_VAR = ' + Cypress.env('MY_VAR')) expect(Cypress.env('MY_VAR')).to.eq('xyz'); }); });

Al ejecutar esta suite a través del corredor nx e2e ( nx run app-name:e2e ), se generará un error de afirmación:

 AssertionError: expected 'abc' to equal 'xyz' + expected - actual -'abc' +'xyz'

He verificado que el comportamiento funciona como se esperaba con un proyecto mío que no es Nx angular\cypress; vale la pena señalar que cypress.env.json en mi otro proyecto está en la raíz del proyecto junto con el archivo cypress.json .

Intenté ubicar el archivo cypress.env.json en mi proyecto Nx en la raíz, en lugar de dentro de apps/my-app-e2e/src junto a cypress.json , pero esto no supuso ninguna diferencia.

¿Estoy malinterpretando cómo lograr esto a través de Nx?

Las dependencias del proyecto son las siguientes:

 Node : 12.16.3 OS : darwin x64 npm : 6.14.5 nx : 12.9.0 @nrwl/angular : 12.9.0 @nrwl/cli : 12.9.0 @nrwl/cypress : 12.9.0 @nrwl/devkit : 12.9.0 @nrwl/eslint-plugin-nx : 12.9.0 @nrwl/express : Not Found @nrwl/jest : 12.9.0 @nrwl/linter : 12.9.0 @nrwl/nest : 12.9.0 @nrwl/next : Not Found @nrwl/node : 12.9.0 @nrwl/nx-cloud : 12.3.13 @nrwl/react : Not Found @nrwl/schematics : Not Found @nrwl/tao : 12.9.0 @nrwl/web : Not Found @nrwl/workspace : 12.9.0 @nrwl/storybook : 12.9.0 @nrwl/gatsby : Not Found typescript : 4.3.5
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Creé un espacio de trabajo nx básico, agregué su configuración y prueba y funcionó bien.

ingrese la descripción de la imagen aquí

  • npx crear-nx-espacio de trabajo --preset=angular

  • nodo v 15.1.0

  • npm versión 7.5.6

  • nx e2e testng-e2e --reloj

over 4 years ago · Santiago Trujillo Relatório

0

Puedes hacerlo de 3 Maneras Diferentes:

Método 1. Configuración de Cypress para que se ejecute en diferentes entornos usando baseUrl en cypress.json

Método 2: configurar varios entornos en Cypress con archivos de configuración de Cypress independientes para cada entorno

Método 3: ejecute sus pruebas de Cypress en múltiples entornos con la variable de entorno de Cypress y la clase de utilidad personalizada

Desde la raíz de la carpeta del Project > Navegar a la carpeta cypress > abrir la carpeta de support .

Cree un nuevo archivo Typescript (alternativamente, también puede crear un archivo Javascript) con el nombre utility.ts .

 //utility.ts export class Utility { getBaseUrl() { let envi = Cypress.env('ENV'); //Get the value of evnironment variable ie ENV if (envi == 'production') //Check the value return "https://www.proudction-website.com"; //return desired url else if (envi == 'staging') return "https://staging-website.com"; else if (envi == 'qa') return "http://qa-website.com"; } }

Crear un archivo de especificaciones y utilizar la URL del entorno Hemos creado nuestra propia función de utilidad, que devolverá las URL específicas del entorno. Ahora, creemos un archivo de especificaciones de Cypress.

En el archivo de especificaciones, puede llamar a la función getBaseUrl() importando la clase de Utility como se muestra a continuación

 //my.spec.ts​ //Import Utility from support folder import { Utility } from "../../../support/utility"​ //Call getBaseUrl() to get environment specific url value const url = new Utility().getBaseUrl();​ describe('Verify Environment Config' + url, () => { it('Verify Environment', () => { cy.visit(url); //use url variable }); });

Ejecute su prueba de Cypress en el entorno de producción usando el siguiente comando:

 npx cypress run --env ENV="production"

Ejecute su prueba de Cypress en el entorno de prueba usando el siguiente comando:

 npx cypress run --env ENV="staging"

Cortesía:https://softans.com/configure-multiple-environments-in-cypress/

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda