Refer following links - GitHub discussion on how to separate Integration Tests and Unit Tests
As a result, I tried this --
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <includes> <include>**/*Tests.java</include> <include>**/*Test.java</include> </includes> <excludes> <exclude>**/Abstract*.java</exclude> <exclude>**/IT*.java</exclude> <exclude>**/*IT.java</exclude> <exclude>**/*ITCase.java</exclude> <exclude>**/*IntegrationTest.java</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> <configuration> <includes> <include>**/IT*.java</include> <include>**/*IT.java</include> <include>**/*ITCase.java</include> <include>**/*IntegrationTest.java</include> </includes> </configuration> </execution> </executions> </plugin> This is working good to some extent. Meaning, surefire doesn't execute Integration tests and Failsafe doesn't execute unit tests.
But, when I run, mvn verify or mvn integration-test, the sure-fire plugin is also used.
Required Outcome: When run mvn integration-test, Unit test shouldn't be run.
The below three images are for mvn verify
Integration Test:
Unit Tests:
The below image is when I ran mvn test



