Как включить несколько категорий в junit4?

Я хочу включить несколько категорий для бегуна junit.

Код Java

@RunWith(Categories.class)
@IncludeCategory(IMAP.class , POP.class)
@SuiteClasses({MailTestSuites.class})
public class TestSuiteRunner{

}

Я хочу запустить свой набор тестов только для этих двух категорий. У меня есть категории для почтового пакета, такие как «IMAP, POP, SMTP, POP3». Теперь я хочу запускать только наборы категорий «IMAP, POP». Как я могу работать с junit?


person kannanrbk    schedule 14.03.2013    source источник


Ответы (2)


До версии JUnit 4.11 @IncludeCategory и @ExcludeCategory поддерживают только одно значение. Однако, начиная с предстоящего выпуска 4.12, будет разрешено передавать несколько значений.

Согласно документация в исходном коде, вы можете написать:

@RunWith(Categories.class)
@IncludeCategory({IMAP.class, POP.class})
@SuiteClasses({MailTestSuites.class})
person Philipp Claßen    schedule 14.05.2014

Нет, вы не можете определить несколько значений @IncludeCategory в одном Categories.

Я рекомендую вам использовать несколько Categories для запуска тестов. (Отдельные тестовые случаи IMAP и POP)

//IMAP tests
@RunWith(Categories.class)
@IncludeCategory(IMAP.class)
@SuiteClasses({MailTestSuites1.class})
public class TestSuiteRunner1{}

//POP tests
@RunWith(Categories.class)
@IncludeCategory(POP.class)
@SuiteClasses({MailTestSuites2.class})
public class TestSuiteRunner2{}

//Merge into one Test
@RunWith(Suite.class)
@Suite.SuiteClasses({TestSuiteRunner1.class, 
    TestSuiteRunner2.class})
public class AllTests {}
person 卢声远 Shengyuan Lu    schedule 16.03.2013
comment
Как я могу работать с несколькими категориями? - person kannanrbk; 16.03.2013