Tengo algunas variables globales en mi escenario de prueba de ciprés.
describe('AutoLogin Test Case',function(){ beforeEach(function(){ Cypress.Cookies.preserveOnce('_session_id') }) afterEach(function(){ cy.get('[id="ajax_working"]',{timeout:6000}).should('not.be.visible') }) it('input login info',function(){ cy.visit('https://***********.******.com/') cy.get('[id^=user_username]') .type('ChrisPbacon').should('have.value','ChrisPbacon') cy.get('[id^=user_password]') .type('welcome123').should('have.value','welcome123') cy.contains('Sign In Now').click() }) })Después de que se complete el caso de prueba, el sistema verificará la función "después de cada" y buscará "ajax_working" ... Necesito omitir esa verificación SOLO en la prueba "it" que se muestra, pero aún necesito ejecutarlo en el resto del programa. No quiero escribir la función de secuelas en cada prueba, ya que es engorrosa y, en general, no está limpia. ¿Alguien tiene algún consejo?
No estoy seguro de si esto se ajustará a su problema, pero una de las formas en que puede lograrlo es envolver afterEach hook en el mismo contexto con pruebas que lo necesitan usando una declaración de descripción, como esta:
beforeEach(function () { cy.log("Before each hook"); }); describe('AutoLogin Test Case',function() { afterEach(function () { cy.log("After each hook"); }); it('Some test', function () { cy.log("Your first test case") }); }); describe('AutoLogin Test Case 2',function() { it('Some other test', function() { cy.log("Your second test case"); }); });Tenga en cuenta el resultado que tiene el comportamiento esperado, beforeEach hook llamado en ambas pruebas, mientras que afterEach hook se llama solo en la primera prueba: