Поиск по сайту:

Настройка JUnit Maven — JUnit 4 и JUnit 5


JUnit 4 и JUnit 5 — совершенно разные фреймворки. Оба они служат одной цели, но JUnit 5 — это совершенно другая среда тестирования, написанная с нуля. Он не использует ничего из API JUnit 4. Здесь мы рассмотрим, как настроить JUnit 4 и JUnit 5 в наших проектах maven.

Зависимости JUnit Maven

Если вы хотите использовать JUnit 4, вам нужна одна зависимость, как показано ниже.

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.12</version>
	<scope>test</scope>
</dependency>

JUnit 5 разделен на несколько модулей, вам потребуется как минимум JUnit Platform и JUnit Jupiter для написания тестов в JUnit 5. Также обратите внимание, что для JUnit 5 требуется Java 8 или более поздние версии.

<dependency>
	<groupId>org.junit.jupiter</groupId>
	<artifactId>junit-jupiter-engine</artifactId>
	<version>5.2.0</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.junit.platform</groupId>
	<artifactId>junit-platform-runner</artifactId>
	<version>1.2.0</version>
	<scope>test</scope>
</dependency>

Если вы хотите запускать параметризованные тесты, вам нужно добавить дополнительную зависимость.

<dependency>
	<groupId>org.junit.jupiter</groupId>
	<artifactId>junit-jupiter-params</artifactId>
	<version>5.2.0</version>
	<scope>test</scope>
</dependency>

Тесты JUnit во время сборки Maven

Если вы хотите, чтобы тесты выполнялись во время сборки maven, вам нужно будет настроить плагин maven-surefire-plugin в вашем файле pom.xml. Юнит 4:

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-plugin</artifactId>
			<version>2.22.0</version>
			<dependencies>
				<dependency>
					<groupId>org.apache.maven.surefire</groupId>
					<artifactId>surefire-junit4</artifactId>
					<version>2.22.0</version>
				</dependency>
			</dependencies>
			<configuration>
				<includes>
					<include>**/*.java</include>
				</includes>
			</configuration>
		</plugin>
	</plugins>
</build>

Юнит 5:

<build>
	<plugins>
		<plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <version>2.22.0</version>
           <dependencies>
               <dependency>
                   <groupId>org.junit.platform</groupId>
                   <artifactId>junit-platform-surefire-provider</artifactId>
                   <version>1.2.0</version>
               </dependency>
           </dependencies>
           <configuration>
           	<additionalClasspathElements>
           		<additionalClasspathElement>src/test/java/</additionalClasspathElement>
           	</additionalClasspathElements>
           </configuration>
       </plugin>
	</plugins>
</build>

HTML-отчеты JUnit

Плагин Maven surefire генерирует текстовые и XML-отчеты, мы можем генерировать отчеты на основе HTML, используя maven-surefire-report-plugin. Приведенная ниже конфигурация работает как для JUnit 4, так и для JUnit 5.

<reporting>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-report-plugin</artifactId>
			<version>2.22.0</version>
		</plugin>
	</plugins>
</reporting>

Просто запустите команду mvn site, и отчет в формате HTML будет сгенерирован в каталоге target/site/. Это все, что нужно для быстрого обзора настройки JUnit для проектов maven.