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

标签 java unit-testing junit junit4

JUnit 4.8 包含一个名为“Categories”的不错的新功能,它允许您将某些类型的测试组合在一起。这非常有用,例如对慢速和快速测试进行单独的测试。我知道 JUnit 4.8 release notes 中提到的东西,但想知道我如何才能实际运行所有带有特定类别注释的测试。

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注解...

最佳答案

我找到了一种可能的方式来实现我想要的,但我不认为这是最好的解决方案,因为它依赖于不属于 JUnit 的 ClassPathSuite 库。

我为这样的慢速测试定义了测试套件:

@RunWith(Categories.class)
@Categories.IncludeCategory(SlowTests.class)
@Suite.SuiteClasses( { AllTests.class })
public class SlowTestSuite {
}

AllTests 类的定义如下:

@RunWith(ClasspathSuite.class)
public class AllTests {
}

我必须使用 ClassPathSuite 中的 ClassPathSuite 类项目在这里。它将找到所有带有测试的类。

关于java - 如何在 JUnit 4 中运行属于某个类别的所有测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2176570/

相关文章:

java - 使用 CloverDX 进行数据转换期间连接中止

java - headless 网络驱动程序测试。无法在java中使用xvfb

Python 单元测试和发现

javascript - 如何覆盖 redux reducer 中的默认状态参数?

unit-testing - Jenkins 和 Sonarqube - 在哪里运行单元测试

oracle - 有没有办法访问私有(private) plsql 程序以进行测试?

Junit 测试类变量范围

java - 如何模拟 HttpSession 并将其作为参数传递给与 session 一起使用的方法?

java - 通过 Android 阅读推文

java - 为什么 JUnit 测试异常总是失败?