Możesz je bardzo łatwo podzielić za pomocą kategorii JUnit i Maven.
Pokazano to bardzo, bardzo krótko poniżej, dzieląc testy jednostkowe i integracyjne.
Zdefiniuj interfejs znacznika
Pierwszym krokiem w grupowaniu testu za pomocą kategorii jest utworzenie interfejsu znaczników.
Ten interfejs będzie używany do oznaczania wszystkich testów, które chcesz uruchomić, jako testy integracji.
public interface IntegrationTest {}
Zaznacz swoje klasy testowe
Dodaj adnotację kategorii na początku klasy testowej. Przyjmuje nazwę nowego interfejsu.
import org.junit.experimental.categories.Category;
@Category(IntegrationTest.class)
public class ExampleIntegrationTest{
@Test
public void longRunningServiceTest() throws Exception {
}
}
Skonfiguruj testy jednostkowe Maven
Piękno tego rozwiązania polega na tym, że nic tak naprawdę nie zmienia się po stronie testów jednostkowych.
Po prostu dodajemy konfigurację do wtyczki maven surefire, aby ignorowała wszelkie testy integracji.
<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>
Gdy to zrobisz mvn clean test
, zostaną uruchomione tylko nieoznaczone testy jednostkowe.
Skonfiguruj testy integracji Maven
Ponownie konfiguracja tego jest bardzo prosta.
Używamy standardowej, bezpiecznej wtyczki i konfigurujemy ją tak, aby uruchamiała tylko testy integracyjne.
<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>
Konfiguracja korzysta ze standardowego celu wykonania, aby uruchomić bezpieczną wtyczkę w fazie testów integracji podczas kompilacji.
Możesz teraz zrobić mvn clean install
.
Tym razem, oprócz uruchomionych testów jednostkowych, testy integracji są uruchamiane w fazie testów integracji.