javamavenmaven-failsafe-plugin

Maven fail-safe not executing tests


I've combed StackOverflow and many other sites, have found many other related posts and have followed all said suggestions, but in the end, failsafe is skipping my tests.

My JUnit test is located here: myModule/src/main/test/java/ClientAccessIT.java

I am skipping surefire because there are no unit tests in this module:

<!-- POM snippet -->
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
  <skip>true</skip>
  </configuration>
</plugin>

And I'm trying to run integration tests with failsafe:

<!-- POM snippet -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <executions>
        <execution>
            <id>run-tests</id>
            <phase>integration-test</phase>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
</plugin>

However, when I run mvn verify I see this:

[INFO] --- maven-failsafe-plugin:2.14.1:integration-test (run-tests) @ rest-services-test ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

I spent the last 4 1/2 hours scouring, any help would be appreciated. The only other thing that may be worth mentioning is that I have Cargo setting up and tearing down a Tomcat container. Does anybody see the glaring problem?


Solution

  • You need to rename your test class.

    You can find the names the plugin looks for by default in the documentation, as pointed out by @acdcjunior:

    By default, the Failsafe Plugin will automatically include all test classes with the following wildcard patterns:

    • "**/IT*.java" - includes all of its subdirectories and all java filenames that start with "IT".
    • "**/*IT.java" - includes all of its subdirectories and all java filenames that end with "IT".
    • "**/*ITCase.java" - includes all of its subdirectories and all java filenames that end with "ITCase".