使用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)的任何类

07-28 12:46