JUnit 4.8包含一个很好的新功能,称为“类别”,使您可以将某些类型的测试组合在一起。这非常有用,例如为慢速和快速测试分别进行测试。我知道JUnit 4.8发行说明中提到的内容,但想知道我如何才能实际运行带有特定类别注释的所有测试。
JUnit 4.8发行说明显示了一个示例套件定义,其中SuiteClasses批注从特定类别中选择要运行的测试,如下所示:
@RunWith(Categories.class) @IncludeCategory(SlowTests.class) @SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite public class SlowTestSuite { // Will run A.b and B.c, but not A.a }
有谁知道我可以如何在SlowTests类别中运行所有测试?看来您必须具有SuiteClasses批注…
我发现了实现我想要的目标的一种可能方法,但是我不认为这是最好的解决方案,因为它依赖于JPath之外的ClassPathSuite库。
我为慢速测试定义了测试套件,如下所示:
@RunWith(Categories.class) @Categories.IncludeCategory(SlowTests.class) @Suite.SuiteClasses( { AllTests.class }) public class SlowTestSuite { }
AllTests类的定义如下:
@RunWith(ClasspathSuite.class) public class AllTests { }
我不得不在这里使用ClassPathSuite项目中的ClassPathSuite类。它将找到所有带有测试的类。