2011-06-17 13 views
6

Chcę uruchomić pakiety testowe Junit, które zawierają różne klasy testowe.Ignoruj ​​testy junit za pośrednictwem @ExcludeCategory w pakiecie testowym

Ze wszystkich testów chcę wykluczyć metody testowe z adnotacjami opatrzonymi pewną adnotacją.

Jestem świadomy adnotacji @Ignore, ale nie chcę jej używać tutaj, ponieważ chcę móc zignorować różne metody testowania, jeśli zadzwonię do testów z różnych zestawów testów.

Próbowałem go i to nie działa. Running mój pakiet bez @ExcludeCategory (IgnoreMeForSpecialReason.class) prowadzi taką samą ilość przypadków testowych, jak są prowadzone z @ExcludeCategory (IgnoreMeForSpecialReason.class)

Aby zilustrować go:

ten pakiet

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

public class MySuiteA 
{ 

} 

prowadzi taką samą ilość testów, jak robi to wersja pakietu:

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

public class MySuiteA 
{ 

} 

Jedna metoda testowa modułu 1Test ma adnotację z adnotacją @IgnoreForSpecialReasonA. Ta metoda powinna zostać pominięta w wersji 1 mojego przykładu, ale jest uruchamiana.

Jak mogę osiągnąć, że @ExcludeCategory faktycznie działa z pakietami?

Pozdrawiam!

Odpowiedz

3

@ExcludeCategory powinien działać z @Category.

Upewnij się, że metody/klasy ignorowania są opatrzone przypisami z @Category(IgnoreForSpecialReasonA.class).

+0

To było to, właśnie opisałem metodę bezpośrednio, zamiast robić to za pomocą adnotacji @Kategoria. dzięki! – nemoo

Powiązane problemy