您可以使用JUnit类别和Maven轻松拆分它们。
下面通过拆分单元测试和集成测试非常非常简要地显示了这一点。
定义标记接口
使用类别对测试进行分组的第一步是创建标记界面。
此接口将用于将要运行的所有测试标记为集成测试。
public interface IntegrationTest {}
标记您的测试班
将类别注释添加到测试类的顶部。它采用新界面的名称。
import org.junit.experimental.categories.Category;
@Category(IntegrationTest.class)
public class ExampleIntegrationTest{
@Test
public void longRunningServiceTest() throws Exception {
}
}
配置Maven单元测试
该解决方案的优点在于,对于单元测试而言,什么都没有真正改变。
我们只需向maven surefire插件添加一些配置即可使其忽略任何集成测试。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<includes>
<include>**/*.class</include>
</includes>
<excludedGroups>
com.test.annotation.type.IntegrationTest
</excludedGroups>
</configuration>
</plugin>
当您执行时mvn clean test
,只会运行未标记的单元测试。
配置Maven集成测试
同样,此配置非常简单。
我们使用标准的故障安全插件并将其配置为仅运行集成测试。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<includes>
<include>**/*.class</include>
</includes>
<groups>
com.test.annotation.type.IntegrationTest
</groups>
</configuration>
</plugin>
该配置使用标准执行目标在构建的集成测试阶段运行故障保护插件。
您现在可以做一个了mvn clean install
。
这次以及单元测试正在运行,集成测试是在集成测试阶段运行的。