java - 如何在 Maven 中按类别运行 JUnit 测试?

标签 java maven junit categories maven-surefire-plugin

使用 JUnit 4.8 和新的 @Category 注释,有没有办法选择一个类别的子集来运行 Maven 的 Surefire 插件?

例如我有:

@Test
public void a() {
}

@Category(SlowTests.class)
@Test
public void b() {
}

我想运行所有非慢速测试,如下所示:(注意 -Dtest.categories 是由我组成的......)。

mvn test -Dtest.categories=!SlowTests // run non-slow tests
mvn test -Dtest.categories=SlowTests // run only slow tests
mvn test -Dtest.categories=SlowTests,FastTests // run only slow tests and fast tests
mvn test // run all tests, including non-categorized

所以重点是我不想创建测试套件(Maven 只选择项目中的所有单元测试,这非常方便),我希望 Maven 能够按类别选择测试. 我想我只是编造了 -Dtest.categories,所以我想知道是否有类似的工具可以使用?

最佳答案

Maven 已经更新并且可以使用类别。

来自 Surefire documentation: 的示例

<plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.11</version>
      <configuration>
        <groups>com.mycompany.SlowTests</groups>
      </configuration>
</plugin>

这将运行带有注释 @Category(com.mycompany.SlowTests.class)

的任何类

关于java - 如何在 Maven 中按类别运行 JUnit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3100924/

相关文章:

java - 集群java独立应用程序

java - 有没有办法使用 JfileChooser 中选择的扩展名来保存 bufferedImage?

java - emptyList() vs empty Set(),如果需要 Collection 的实例,是否有任何理由选择一个而不是另一个?

java - @RequestMapping 在 Maven War 覆盖上的奇怪行为

java - 如何使用 ArgumentCaptor 进行 stub ?

java - 为模块创建maven junit测试库

java - Java 中 spring-security 的替代方案(spring)

java - 无法在 Flex 应用程序中从 Java 调用 Web 服务

java - 使用 Gradle 编译后运行带有依赖项的 java 程序

java - Junit5 Mockito @InjecctMocks 不适用于 MockMvc