Sie können sie sehr einfach mit JUnit-Kategorien und Maven aufteilen.
Dies wird im Folgenden sehr, sehr kurz durch Aufteilen von Einheiten- und Integrationstests gezeigt.
Definieren Sie eine Marker-Schnittstelle
Der erste Schritt beim Gruppieren eines Tests anhand von Kategorien besteht darin, eine Markierungsschnittstelle zu erstellen.
Diese Schnittstelle wird verwendet, um alle Tests, die Sie ausführen möchten, als Integrationstests zu markieren.
public interface IntegrationTest {}
Markieren Sie Ihre Testklassen
Fügen Sie die Kategorieanmerkung oben in Ihrer Testklasse hinzu. Es nimmt den Namen Ihrer neuen Schnittstelle an.
import org.junit.experimental.categories.Category;
@Category(IntegrationTest.class)
public class ExampleIntegrationTest{
@Test
public void longRunningServiceTest() throws Exception {
}
}
Konfigurieren Sie Maven Unit Tests
Das Schöne an dieser Lösung ist, dass sich für den Unit-Test nichts wirklich ändert.
Wir fügen dem Maven Surefire-Plugin einfach eine Konfiguration hinzu, damit Integrationstests ignoriert werden.
<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>
Wenn Sie a mvn clean test
ausführen, werden nur Ihre nicht markierten Komponententests ausgeführt.
Konfigurieren Sie Maven-Integrationstests
Auch hier ist die Konfiguration sehr einfach.
Wir verwenden das ausfallsichere Standard-Plugin und konfigurieren es so, dass nur die Integrationstests ausgeführt werden.
<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>
Die Konfiguration verwendet ein Standardausführungsziel, um das ausfallsichere Plugin während der Integrationstestphase des Builds auszuführen.
Sie können jetzt eine mvn clean install
.
Dieses Mal werden neben den laufenden Unit-Tests auch die Integrationstests während der Integrationstestphase ausgeführt.