小编典典

如何在JUnit 4中运行属于某个类别的所有测试

java

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批注…


阅读 397

收藏
2020-09-08

共1个答案

小编典典

我发现了实现我想要的目标的一种可能方法,但是我不认为这是最好的解决方案,因为它依赖于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类。它将找到所有带有测试的类。

2020-09-08