Tengo una prueba de ciprés para mi aplicación web, siendo un conjunto de bloques:
describe('Test Page X', function () { before(function () { cy.navigateTo('page-x', 0) }) it ('should work', function(){ cy.doSomething() }) after(function(){ cy.navigateBack() }) })El problema es que after() se llama solo cuando() funciona, si it() falla debido a algún error en la página X, after() no se llama y, como resultado, la prueba se atasca en la página. X, y las siguientes pruebas para las páginas Y, Z, etc. también fallan.
¿Estoy haciendo algo mal aquí? ¿Cómo hacer after() que siempre se llama?
Puede haber una solución técnica, pero hay una solución arquitectónica.
Cypress desaconseja el uso de ganchos posteriores para limpiar los estados después de las pruebas. Eso es básicamente lo que haces ahora.
si it() falla debido a algún error en la página X, after() no se llama y, como resultado, la prueba se atasca en la página X y las siguientes pruebas para las páginas Y, Z, etc. también fallan.
Eso tiene una solución fácil en la que puede navegar a las páginas Y, Z desde antes de los enlaces o directamente desde las pruebas.
Puede consultar la recomendación de Cypress sobre este tema aquí .