如何在junit4中包含多个类别?

时间:2013-03-14 19:28:08

标签: junit junit4

我想为junit runner添加多个类别。

Java代码

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

}

我想仅为这两个类别运行我的测试套件。我有邮件套件的类别,如“IMAP,POP,SMTP,POP3”。现在,我只想运行“IMAP,POP”类别套件。 我怎么能用junit运行?

2 个答案:

答案 0 :(得分:1)

最高版本JUnit 4.11,@IncludeCategory@ExcludeCategory仅支持一个值。但是,从即将发布的版本4.12开始,将允许传递多个值。

根据documentation in the source code,您可以写:

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

答案 1 :(得分:0)

不,您无法在一个@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 {}