Tengo un formulario que estoy llenando y cada caso de prueba toma diferentes valores para nombre, apellido y correo electrónico. Entonces, estoy creando los valores de las variables env dentro de cada caso de prueba, ya que el valor cambia cada vez en lugar de solo un valor en cypress.json. ¿Hay alguna manera de mover las variables const que declaré a continuación a una sección dentro de cypress? ¿Puedo moverlo? a la sección de anzuelos??
//Second Test Case with Broker Company it('demotestnifty1', { env: { firstname: 'Lambda', lastname: 'Jonas', email: 'ljrfnew@gemini.com', } }, function () { const firstname = Cypress.env('firstname') const email = Cypress.env('email') const lastname = Cypress.env('lastname')Puede definirlos en el nivel describe() o context() , si los datos serán los mismos para todas las pruebas en esos bloques. Esto es similar a lo que ya ha hecho en su bloque it() .
describe('some test', { env: { foo: 'bar' } }, () => { it('logs foos value', () => { cy.log(Cypress.env('foo'); // logs 'bar'. }); }); También puede almacenarlos en sus archivos cypress.json o cypress.env.json .
// cypress.json { ... 'env': { 'foo': 'bar' } ... } // cypress.env.json { 'foo': 'bar' } Cypress recogerá las variables incluidas en cypress.json o cypress.env.json automáticamente, por lo que no se requerirá ninguna configuración adicional. Nota: Las variables de entorno almacenadas en cypress.env.json cualquier conjunto en cypress.json .
De cualquier manera, después de definir las variables en un ámbito más alto que el bloque it() , puede establecerlas en before() o beforeEach() de su bloque.
// assumes value is set in cypress.json describe('some tests', () => { let foo: string; before(() => { foo = Cypress.env('foo'); }); it('logs foo value', () => { cy.log(foo); // logs 'bar' }); }); EDITAR: después de la discusión, parece que la pregunta real que se hace es cómo se pueden configurar y usar fácilmente los datos. Creo que la forma más fácil sería configurar los datos en beforeEach() .
describe('some test', () => { let foo: string; beforeEach(() => { foo = Cypress.env('foo'); }) it('logs bar', { env: { foo: 'bar' } }, () => { cy.log(foo); // logs 'bar' }); it('logs baz', { env: { foo: 'baz' } }, () => { cy.log(foo); // logs 'baz' }); });También puede ser valioso establecer un valor predeterminado, en caso de que tenga un caso de uso que esté usando > 50% del tiempo.
... let foo: string; beforeEach(() => { foo = Cypress.env('foo') ?? 'defaultValue' }); ...Hacer una matriz de usuarios e indexarlo
// cypress.json { "env": { "users": [ {firstname: 'Lambda', lastname: 'Jonas', email: 'ljrfnew@gemini.com'}, ... ] } } // test it('tests with first user', () => { const firstname = Cypress.env('users')[0].firstname const lastname = Cypress.env('users')[0].lastname ... })