1. Тестування в Maven
Ще один важливий момент у роботі Maven – це фаза тестування. Вона виконається, якщо ти запустиш фазу test, package, verify або будь-яку іншу з наступних фаз.
За замовчуванням Maven запустить усі тести, які знаходяться у папці src/test/java/. Щоб відрізнити тести, які потрібно запустити, від інших java-файлів було ухвалено угоду імен. Тестами вважаються java-класи, чиї імена починаються з Test і закінчуються на Test або TestCase.
Загальний шаблон імен тестів:
- **/Test*.java
- **/*Test.java
- **/*TestCase.java
Ці тести потрібно писати на основі тестового фреймворку Junit або TestNG. Це дуже круті фреймворки, про них ми обов'язково поговоримо трохи згодом.
Результати тестування у вигляді звітів у форматах .txt та .xml зберігаються в директорії ${basedir}/target/surefire-reports.
2. Налаштування тестування
Варіантів запуску тестів зазвичай буває дуже багато, тому розробники Maven створили спеціальний плагін, у параметрах якого можна зазначити детальну інформацію щодо тестування. Плагін називається Maven Surefire Plugin, і він доступний за цим посиланням.
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<includes>
<include>Sample.java</include>
</includes>
</configuration>
</plugin>
</plugins>
У прикладі ми сказали плагіну, що потрібно запустити єдиний тестовий клас – Sample.java.
3. Як швидко виключити поламані тести
Щоб запустити проєкт на тестування, необхідно виконати команду mvn test. Але частіше виникає потреба виключити з тестування деякі тести. Наприклад, поламані, або ті, що занадто довго виконуються, тощо.
По-перше, можна сказати Maven пропустити тести під час виконання фази складання. Ось приклад:
mvn clean package -Dmaven.test.skip=true
По-друге, у конфігурації плагіна можна вимкнути виконання тестів:
<configuration>
<skipTests>true</skipTests>
</configuration>
Ну і, по-третє, тести можна виключити за допомогою тега <exclude>. Приклад:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<excludes>
<exclude>**/TestFirst.java</exclude>
<exclude>**/TestSecond.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ