La mejor manera de registrar excepciones cuando las pruebas fallan (por ejemplo, usando una regla junit)
Cuando estoy ejecutando un conjunto de pruebas completo, sería útil si aparecieran en mi registro (SLF4J-) las excepciones que provocaron el fallo de una prueba. ¿Cuál es el mejor método para lograr esto?
Lo que me gustaríaes una regla junit4 que maneja el registro de excepciones para mí. El códig
@Rule
public TestRule logException = new TestWatcher() {
@Override
public void failed(Description d) {
catch (Exception e) {
logger.error("Test ({}) failed because of exception {}", d, e);
throw e;
}
}
}
por supuesto no funciona, ya que solo puedo detectar excepciones de un bloque de prueba. ¿Hay alguna solución para lograr esto de una manera similarmente simple y general?
BTW, lo que estoy haciendo ahoraestá registrando la excepción en el momento en que se crea. Pero sería mejor registrar excepciones en la interfaz entre la persona que llama y la biblioteca, así que en mi caso en el caso de prueba. No iniciar sesión cuando se crean las excepciones también garantizaría que no aparezcan varias veces cuando la persona que llama decida iniciar sesión.