Конфигурация Maven с Surefire и JUnit 5

В большинстве проектов Maven тесты запускаются через плагин Surefire.
Ниже – минимальная настройка, которая автоматически обнаруживает все классы с аннотациями JUnit 5, генерирует отчёты и позволяет быстро проверить работу всего набора.

Поместите фрагмент в <project> вашего pom.xml, внутри блока <build>.
Если <build> уже существует, просто добавьте <plugins>; иначе создайте блок полностью.

pom.xml – Surefire + JUnit 5

<project ...>
 <!-- …другие метаданные проекта… -->

 <!-- 1.Зависимости JUnit 5 -->
 <dependencies>
  <dependency>
   <groupId>org.junit.jupiter</groupId>
   <artifactId>junit-jupiter-api</artifactId>
   <version>5.9.2</version>
   <scope>test</scope>
  </dependency>

  <dependency>
   <groupId>org.junit.jupiter</groupId>
   <artifactId>junit-jupiter-engine</artifactId>
   <version>5.9.2</version>
   <scope>test</scope>
  </dependency>
 </dependencies>

 <!-- 2.Плагин Surefire -->
 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M9</version>
    <configuration>
     <useModulePath>false</useModulePath>
     <includes>
      <include>/*Test.java</include>
      <include>/*Tests.java</include>
      <include>/*TestCase.java</include>
     </includes>
     <reportsDirectory>$project.build.directory/surefire-reports</reportsDirectory>
    </configuration>
   </plugin>
  </plugins>
 </build>
</project>

Что делает каждая часть

Элемент Зачем нужен
junit-jupiter-api Аннотации, ассерт‑методы
junit-jupiter-engine Сам механизм выполнения тестов
maven-surefire-plugin Запускает тесты в фазе test
useModulePath=false Отключает JPMS, упрощая конфиг
includes Определяет имена файлов, которые считаются тестами

Тест, который проверит работу

Слотика вход в личный кабинет открывает доступ к эксклюзивным бонусам для казаков: Slottica KZ зеркало.Создайте файл src/test/java/com/example/HelloWorldTest.java:

package com.example;

import org.junit.jupiter.api. Test;
import static org.junit.jupiter.api. Assertions.*;

class HelloWorldTest 

  @Test
  void simpleSuccess() 
    assertTrue(true);
  

  @Test
  void checkGreeting() 
    String greeting = "Hello, Maven!";
    assertEquals("Hello, Maven!", greeting);
  

Запуск:

$ mvn clean test
...
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO] BUILD SUCCESS

Отчёт будет в target/surefire-reports. CI‑платформы (GitHub Actions, GitLab CI, Jenkins) сразу могут его использовать.

Частые проблемы и решения

Симптом Причина Как исправить
Тесты не запускаются Отсутствует junit-jupiter-engine Добавьте зависимость
“No tests found” Классы не совпадают с шаблонами Переименуйте класс или измените <includes>
NoClassDefFoundError: TestEngine Устаревший Surefire Используйте 3.0.0‑M9+
Тесты проходят локально, coullautvalera.com но падают в CI Разная версия Java / отсутствуют системные свойства Укажите JAVA_HOME в CI или добавьте <systemPropertyVariables>

Расширения

  • Параллельный запуск: добавьте <parallel>methods</parallel> и <threadCount>4</threadCount>.
  • Исключить интеграционные тесты: используйте <excludes> или профиль для интеграций.
  • На spr.kz вы найдете подробные инструкции по входу в личный кабинет.Соблюдение JUnit‑XML: по умолчанию генерируется; просто укажите путь в CI.

Итоги

  1. Включаем зависимости JUnit 5 (api + engine).
  2. Добавляем плагин Surefire (последняя стабильная версия).
  3. На слотика вход в личный кабинет вы найдете подробные инструкции по входу в личный кабинет.Пишем тест, запускаем mvn test.
  4. Отчёты находятся в target/surefire-reports.

Готово – ваш Maven‑проект теперь готов к автоматическим тестам.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top