jasmine - unitarias - Detener la prueba de jazmín después de la primera espera falla
jasmine github (3)
Estoy familiarizado con las pruebas de pruebas unitarias de Python, donde si una afirmación falla, esa prueba se marca como "fallida" y pasa a otras pruebas. Jasmine, por otro lado, continuará con todas las expectativas, incluso si una de ellas falla. ¿Cómo puedo hacer que Jasmine deje de procesar una prueba después de que la primera expectativa falla?
it ("shouldn''t need to test other expects if the first fails", function() {
expect(array.length).toBe(1);
// don''t need to check this if the first failed.
expect(array[0]).toBe("foo");
});
¿Estoy pensando mal? Tengo algunas pruebas con muchas expect
y parece un desperdicio mostrar todas las huellas de la pila cuando solo la primera está realmente equivocada.
De acuerdo con los comentarios de https://github.com/jasmine/jasmine/issues/414 , descubrí que existen 2 soluciones para esto: https://github.com/radialanalytics/protractor-jasmine2-fail-whale https://github.com/Updater/jasmine-fail-fast
Acabo de empezar a usar el protractor-jasmine2-fail-whale porque parece tener más funciones. Aunque para tomar capturas de pantalla en caso de fallas en las pruebas, actualmente uso protractor-jasmine2-html-reporter.
Jasmine no admite fallas tempranas, en una sola especificación. La idea es darte todas las fallas en caso de que eso te ayude a descubrir qué es lo que realmente está mal en tu especificación.
La respuesta de v2.0.0 fue correcta para la última versión de Jasmine en ese momento ( v2.0.0 ).
Sin embargo, desde entonces, esta nueva característica se added en v2.3.0 :
Permitir al usuario detener una ejecución de especificaciones cuando falla una expectativa (Correcciones #577 )
Se activa agregando throwFailures=true
a la cadena de consulta de la página del corredor, por ejemplo:
http://localhost:8000/?throwFailures=true