Take a look at the failsafe docs for the test names failsafe
expects by default:
<includes>
<include>**/IT*.java</include>
<include>**/*IT.java</include>
<include>**/*ITCase.java</include>
</includes>
Are your tests named following one of these patterns? If not, try defining the <includes>
element in the plugin configuration. Or change your test name(s) to fit the default pattern.
Okay, now that we’ve verified the test class names – typically when I add executions to plugin config I do it something like this:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${version.maven.failsafe.plugin}</version>
<configuration>
</configuration>
<executions>
<execution>
<id>failsafe-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>failsafe-verify</id>
<phase>verify</phase>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
This explicitly binds the failsafe
plugin goals you want to run to the correct phases of the build lifecycle. I believe the surefire
plugin is bound to the test
lifecycle phase by default (for a jar, war, & ejb anyway), but nothing is bound to integration-test
or verify
.