【发布时间】:2017-05-12 17:26:51
【问题描述】:
我有以下测试:
FirstUnitTest.java
SecondUnitTest.java
FirstIntegrationTest.java
SecondIntegrationTest.java
单元测试没有标记类别。
这两个集成测试标有@Category(IntegrationTests.class)。
我希望默认运行所有测试,集成测试除外。
但是,如果配置文件 integration-tests-only 处于活动状态,我只想运行集成测试。
我天真地认为下面的配置可以做到这一点:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>com.example.IntegrationTests</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>integration-tests-only</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<groups>com.example.IntegrationTests</groups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
但是,在没有配置文件的情况下运行测试完全符合我的要求 - 只运行单元测试,如果我激活 integration-tests-only 配置文件,则根本不会运行任何测试。
任何想法我做错了什么?
【问题讨论】: