¿Se puede configurar Intellij-IDEA para romper las excepciones en las pruebas JUnit que permiten que la prueba falle?

Cuando tengo una prueba JUnit, me gustaría que el depurador se detenga justo en el punto en que se produce cualquier excepción en el código probado que permita que la prueba falle, para inspeccionar lo que está mal. ¿Existe la posibilidad de configurar el depurador de IntelliJ para hacer eso, y no romper otras excepciones?

Si establezco un punto de interrupción de excepción en cualquier excepción no detectada, esto no funciona ya que JUnit detecta la excepción. Si intento que el punto de interrupción se rompa también en las excepciones detectadas con la clase catch org.junit., Eso tampoco funciona, ya que la excepción es capturada y envuelta por los mecanismos de reflexión de Javas antes de que llegue a JUnit. Así que estoy un poco perdido aquí: Eclipse solo se detiene en la excepción original.

ACLARACIÓN: estoy hablando de excepciones en el código que pruebo o código llamado desde allí, no sobre fallas de aserción en las pruebas. Por ejemplo, considere estas pruebas:

@Test
public void thisShouldBreak() {
    int i = 25 - 25;
    int j = 17 / i;
}


private void neverBreakHereSinceThisIsCaught() {
    int i = 14 - 14;
    int j = 29 / i;
}

@Test
public void thisShouldNotBreak() {
    try {
        neverBreakHereSinceThisIsCaught();
    } catch (ArithmeticException e) {
        // ignored or handled
    }
}

@Test
public void thisShouldNotBreakEither() {
    try {
        getClass().getDeclaredMethod("neverBreakHereSinceThisIsCaught").invoke(this);
    } catch (Exception e) {
        // ignored or handled
    }
}

Quiero que IntelliJ se detenga al ejecutar la pruebathisShouldBreak en el lugar donde se produce la ArithmeticException, de modo que pueda inspeccionar el valor de i que causó la excepción. Sin embargo, no quiero que IntelliJ se detenganeverBreakHereSinceThisIsCaught ya que la excepción lanzada allí no llega a JUnit. Intenté sin éxito: - un punto de interrupción de excepción en excepciones atrapadas se rompe enneverBreakHereSinceThisIsCaught, too, and loads of other places. - an exception breakpoint only on uncaught exception is never hit at all, since JUnit catches and wraps those exceptions. - a catch class filterorg.junit. * `también se rompe en muchos lugares internos de JUnit y finaliza las llamadas de reflexión Java de JUnit.

Respuestas a la pregunta(5)

Su respuesta a la pregunta