您可以使用 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>
当您执行 amvn 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
.
这次除了单元测试运行外,集成测试也在集成测试阶段运行。