UT = Единичные тесты IT = Интеграционные тесты. Все мои тестовые классы интеграции аннотируются с помощью @Category (IntegrationTest.class)
Моя цель:
mvn clean install
= > запускает UT, а не IT
mvn clean install
-DskipTests = true = > не выполняются тесты
mvn clean deploy
= > запускает UT, а не IT
mvn clean test
= > запускает UT, а не IT
mvn clean verify
= > запускает UT и IT
mvn clean integration-test
= > запускает IT и UT не выполняются
mvn clean install deploy
= > запускает UT, а не IT
Свойства pom:
<junit.version>4.12</junit.version>
<surefire-plugin.version>2.18.1</surefire-plugin.version>
<failsafe-plugin.version>2.18.1</failsafe-plugin.version>
-
Компилятор:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgument>-Xlint:all</compilerArgument> <showWarnings>true</showWarnings> <showDeprecation>true</showDeprecation> </configuration> </plugin>
-
Единичные тесты:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${surefire-plugin.version}</version> <configuration> <excludedGroups>com.xpto.IntegrationTest</excludedGroups> </configuration> </plugin>
-
Интеграционные тесты:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>${failsafe-plugin.version}</version> <configuration> <groups>com.xpto.IntegrationTest</groups> </configuration> <executions> <execution> <goals> <goal>integration-test</goal> </goals> <configuration> <includes> <include>**/*.class</include> </includes> </configuration> </execution> </executions> </plugin>
Мои результаты:
mvn clean install
= > OK
mvn clean install
-DskipTests = true = > OK
mvn clean deploy
= > запускает UT, а не IT
mvn clean test
= > OK
mvn clean verify
= > NOK... только UT выполняются, но IT также необходимо выполнить
mvn clean integration-test
= > NOK... UT выполняются и не должны и IT не выполняются, но должны выполняться
mvn clean install deploy
= > OK