How to make integration tests and unit tests run separately through maven?

Tarun Maganti :

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:

Integration Test

Tests Run

Unit Tests:

Unit Test

The below image is when I ran mvn test

Unit Tests

ipper :

Maven has a build lifecycle made up out of several phases. When you call a particular one, all phases before that one will be executed first. See https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

There are two ways how you could solve what you want:

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=445223&siteId=1