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
。
今回は単体テストの実行と同様に、統合テストは統合テストフェーズ中に実行されます。