Я хочу отличить мой блок и интеграционный тест с помощью @category в junit. Я создал два интерфейса с именем UnitTest и IntegrationTests. Я комментирую свои тестовые классы и методы тестирования с помощью @Category (UnitTest.class) и @Category (IntegrationTest.class).maven sure fire plugin not honoring <groups> tag
Я настроил maven sure fire и maven сбойные плагины для моего модуля.
Файл П выглядит примерно так
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
<artifactId>my-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>My Parent Module</name>
<properties>
<skipTests>false</skipTests>
<skipITs>true</skipITs>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<configuration>
<skipITs>${skipITs}</skipITs>
<groups>com.myproject.IntegrationTest</groups>
<includes>
<include>**/*.java</include>
</includes>
</configuration>
<executions>
<execution>
<id>failsafe-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<groups>com.myproject.UnitTest</groups>
<excludedGroups>com.myproject.IntegrationTest</excludedGroups>
<includes>
<include>**/*.java</include>
</includes>
<skipTests>${skipTests}</skipTests>
<systemProperties>
<property>
<name>targetURI</name>
<value>${targetURI}</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
</project>
Когда я запустить MVN чистой установки (я ожидать модульные тесты (Maven верного плагина) отдельно для запуска и интеграция тесты (Maven безаварийности) быть пропущены) , который, кажется, происходит хорошо.
Но, Странно, что плагин плагина maven не соблюдает теги, я заканчиваю тесты на запуск, как в категории «Категория» (UnitTest), так и без категорий . Тем не менее, тесты с @IntegrationTest пропускаются.
Я думал, что все тесты, кроме категории @unitTests, будут пропущены.
Я попытался удалить com.myproject.IntegrationTest из конфигурации плагина плагина и тестов с помощью @category (IntegrationTest.class) также начал работать.
Это ошибка в плагине surefire. В соответствии с документацией должны выполняться только тесты с указанной категорией.
Я что-то упустил?
Поставщик junit установлен в junit47, а также с 2.14.1. –
2.12.1.2.14.x, 2.15, со всеми версиями, я столкнулся с теми же проблемами, в то время как зависимость провайдера surefire-junit47 внутри плагина (явно) также не помогает :( –