runwith example java junit ignore

java - example - ¿Qué puede hacer que JUnit ignore las anotaciones de @Ignore?



junit arguments (5)

  1. Asegúrese de que está importando el @Ignore correcto. Para estar seguro use @org.junit.Ignore explícitamente.

  2. Verifique si JUnit 4 está ejecutando su prueba, no 3. La forma más fácil de hacer esto es cambiar el nombre de la prueba para que no sea el prefijo de test (ahora no debería ejecutarse y JUnit 4 no necesita este prefijo de todos modos) o examine la jerarquía de herencia de su caso de prueba: no debería extenderse directa o indirectamente desde junit.framework.TestCase (requisito de Junit 3).

Acabo de usar MyEclipse para generar automáticamente algunos casos de prueba de JUnit. Uno de los métodos generados se ve así:

@Ignore("Ignored") @Test public void testCreateRevision() { fail("Not yet implemented"); // TODO }

He añadido la anotación @Ignore manualmente. Sin embargo, cuando ejecuto la prueba, JUnit enumera ese método y otros similares, en "fallas", en lugar de ignorarlos (relacionado: ¿Cuál es la diferencia entre falla y error en JUnit? ). Y muestra el mensaje "Aún no implementado" en lugar del mensaje "Ignorado". Claramente, se debe llamar fail() , y por lo tanto, la aserción @Ignore no está funcionando.

¿Que está pasando aqui? ¿Debo habilitar una configuración para que esto funcione?

EDITAR:
Cosas que he considerado / probado hasta ahora:

  • Estoy usando JUnit 4, así que no es un problema de versión.
  • Estoy importando org.junit.Ignore , por lo que no es un caso del uso incorrecto de Ignore .
  • He intentado usar @Ignore solo, @Ignore @Test y @Ignore("message") @Test ; todos fallan

EDIT 2:
Creé las pruebas con MyEclipse, a través de New > Other; Java > JUnit > JUnit Test Case; New JUnit 4 test New > Other; Java > JUnit > JUnit Test Case; New JUnit 4 test New > Other; Java > JUnit > JUnit Test Case; New JUnit 4 test y la biblioteca en mi ruta de compilación es JUnit 4. Estoy construyendo con ant y ejecutando el caso con MyEclipse.


¿Estás seguro de que las clases de prueba fueron recompiladas?

Es un problema bastante común, que la recompilación falla porque hubo un error tipográfico en algún lugar de las fuentes (como un punto y coma faltante), y el IDE no le dice que la compilación falló.

Intenta eliminar la carpeta target/test-classes .



En mi caso, encontré que mi IDE estaba ejecutando la prueba sin tener en cuenta la anotación @Ignore . Cuando ejecuté mvn install (o cualquier otra fase de Maven), la prueba se omitió y eso es lo que realmente buscaba (ver ilustración adjunta).

Ilustración de formas de ejecución.


También tuve este problema a pesar de que JUnit 3 no estaba en mi classpath. Creo que el modo de compatibilidad en Junit 4 recoge el prefijo ''test'' en su nombre de prueba y, por lo tanto, funciona como lo haría JUnit 3 en lugar de recoger el @Ignore. La solución es cambiar el nombre de tu prueba.