Junit Disable Tests

Junit: Disable tests

Toda la clase de pruebas o métodos de prueba individuales pueden ser deshabilitados mediante la anotación @Disabled, mediante una de las anotaciones discutidas en Ejecución Condicional de Pruebas, o mediante una condición de ejecución personalizada.

Cuando @Disabled se aplica al nivel de la clase, todos los métodos de prueba dentro de esa clase también se deshabilitan automáticamente.

Si un método de prueba se deshabilita mediante @Disabled, esto impide la ejecución del método de prueba y las devoluciones de llamada del ciclo de vida a nivel de método, como los métodos @BeforeEach, @AfterEach y las APIs de extensión correspondientes. Sin embargo, esto no impide que la clase de prueba sea instanciada, ni impide la ejecución de las devoluciones de llamada del ciclo de vida a nivel de clase, como los métodos @BeforeAll, @AfterAll y las APIs de extensión correspondientes.

Aquí tienes una clase de prueba con @Disabled.

import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

@Disabled("Disabled until bug #99 has been fixed")
class DisabledClassDemo {

    @Test
    void testWillBeSkipped() {
    }

}

Y aquí tienes una clase de prueba que contiene un método de prueba con @Disabled.

import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;

class DisabledTestsDemo {

    @Disabled("Disabled until bug #42 has been resolved")
    @Test
    void testWillBeSkipped() {
    }

    @Test
    void testWillBeExecuted() {
    }

}

❕@Disabled puede ser declarada sin proporcionar una razón; sin embargo, el equipo de JUnit recomienda que los desarrolladores proporcionen una breve explicación del motivo por el cual una clase de prueba o un método de prueba ha sido deshabilitado. En consecuencia, los ejemplos anteriores muestran el uso de una razón, por ejemplo, @Disabled(“Deshabilitado hasta que se resuelva el error #42”). Algunos equipos de desarrollo incluso exigen la presencia de números de seguimiento de problemas en la razón para facilitar la trazabilidad automática, etc.

💡@Disabled no es @Inherited. En consecuencia, si deseas deshabilitar una clase cuya clase base está anotada con @Disabled, debes redeclarar @Disabled en la subclase.