Ви можете розділити їх дуже легко, використовуючи категорії JUnit та Maven.
Це показано дуже, дуже коротко нижче, розбиваючи модуль та інтеграційні тести.
Визначте інтерфейс маркера
Перший крок у групуванні тесту за допомогою категорій - це створення інтерфейсу маркера.
Цей інтерфейс буде використовуватися для позначення всіх тестів, які потрібно запустити як інтеграційні тести.
public interface IntegrationTest {}
Позначте свої тестові класи
Додайте примітку до категорії у верхній частині свого тестового класу. Він приймає назву вашого нового інтерфейсу.
import org.junit.experimental.categories.Category;
@Category(IntegrationTest.class)
public class ExampleIntegrationTest{
@Test
public void longRunningServiceTest() throws Exception {
}
}
Налаштування тестів Maven Unit
Краса цього рішення полягає в тому, що насправді нічого не змінюється для одиничної тестової сторони речей.
Ми просто додаємо деяку конфігурацію до плагіна 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
.
Цього разу, як і запущені одиничні тести, тести інтеграції виконуються під час фази тесту інтеграції.