2011-06-17 16 views
6

Quiero ejecutar suites de prueba Junit que contengan varias clases de prueba.Ignorar pruebas junit a través de @ExcludeCategory dentro de un conjunto de pruebas

De todas las pruebas, quiero excluir los métodos de prueba anotados con una cierta anotación.

Conozco la anotación @Ignore pero no quiero usarla aquí porque quiero poder ignorar diferentes métodos de prueba si llamo a las pruebas desde diferentes suites de prueba.

Lo he probado y no funciona. Ejecución de mi suite sin @ExcludeCategory (IgnoreMeForSpecialReason.class) se ejecuta la misma cantidad de casos de prueba que se ejecutan con @ExcludeCategory (IgnoreMeForSpecialReason.class)

para ilustrarlo:

Esta suite

//version 1 
@RunWith(Categories.class) 
@ExcludeCategory(IgnoreForSpecialReasonA.class) 
@SuiteClasses({ 
    // add your test classes here 
    Module1Test.class, 
    Module2Test.class, 
    Module3Test.class 
}) 

public class MySuiteA 
{ 

} 

corre la misma cantidad de pruebas como lo hace esta versión de la suite:

//version 2 
@RunWith(Categories.class) 
//@ExcludeCategory(IgnoreForSpecialReasonA.class) 
@SuiteClasses({ 
    // add your test classes here 
    Module1Test.class, 
    Module2Test.class, 
    Module3Test.class 
}) 

public class MySuiteA 
{ 

} 

Un método de ensayo del módulo 1Test está anotado con la Anotación @IgnoreForSpecialReasonA. Ese método debe omitirse en la versión 1 de mi ejemplo, pero se ejecuta.

¿Cómo puedo lograr que @ExcludeCategory realmente funcione con suites?

¡Salud!

Respuesta

3

@ExcludeCategory debería funcionar con @Category.

Asegúrese de que sus métodos/clases de ignorar estén anotados con @Category(IgnoreForSpecialReasonA.class).

+0

Eso fue, acabo de anotar el método directamente en lugar de hacerlo a través de la anotación @Category. ¡Gracias! – nemoo

Cuestiones relacionadas