I just started using "maven-failsafe-plugin" and
"maven-surefire-report-plugin" so my apologies in advance...
For starters, I've configured maven-failsafe-plugin and
maven-surefire-report-plugin as such (respectively):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
...
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.12</version>
<reportSets>
<reportSet>
<id>integration-tests</id>
<reports>
<report>failsafe-report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
...
I have two test cases defined in /src/test/java/.../GameResourceIT.java like so:
public class GameResourceIT extends TestCase {
public static final String LOCAL_SERVER_URL_ROOT =
"http://localhost:8080/gameservice";
public static final String GAMES_RESOURCE_URI = "/games";
public void testGetGamesForDate_20120603_status200Expected()
throws Exception {
String date = "06-03-2012";
Client client = Client.create();
WebResource webResource =
client.resource(LOCAL_SERVER_URL_ROOT + GAMES_RESOURCE_URI + "/" +
date);
ClientResponse response =
webResource.accept("application/json").get(ClientResponse.class);
assertEquals("Failed : status = " + response.getStatus() + ",
body = " + response.getEntity(String.class),
response.getStatus(), Status.OK.getStatusCode());
}
public void testGetGamesForDate_20120608_status404Expected()
throws Exception {
String date = "06-08-2012";
Client client = Client.create();
WebResource webResource =
client.resource(LOCAL_SERVER_URL_ROOT + GAMES_RESOURCE_URI + "/" +
date);
ClientResponse response =
webResource.accept("application/json").get(ClientResponse.class);
assertEquals("Failed : status = " + response.getStatus() + ",
body = " + response.getEntity(String.class),
response.getStatus(), Status.NOT_FOUND.getStatusCode());
}
}
...
When I run "mvn verify", I get the following:
[INFO] --- maven-failsafe-plugin:2.12:integration-test (default) @
gameservice ---
[INFO] Failsafe report directory: ...\gameservice\target\failsafe-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running ....GameResourceIT
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.938
sec <<< FAILURE!
Results :
Failed tests:
testGetGamesForDate_20120608_status404Expected(...GameResourceIT):
Failed : status = 200, body = null expected:<200> but was:<404>
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0
[INFO] --- maven-failsafe-plugin:2.12:verify (default) @ gameservice ---
[INFO] Failsafe report directory:...\gameservice\target\failsafe-reports
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.753s
[INFO] Finished at: Thu Jul 26 20:39:44 EDT 2012
2012-07-26 20:39:44.644::INFO: Shutdown hook complete
[INFO] Final Memory: 21M/52M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-failsafe-plugin:2.12:verify (default)
on project gameservice: There are test failures.
Fine. As expected, 1 of the 2 tests failed. But as NOT expected, the
verify goal failed as well (I thought integration test failures would
not halt execution, but simply be recorded).
Now, if I look at /target/failsafe-reports/GameResourceIT.txt and
/target/failsafe-reports/TEST-GameResourceIT.xml, I see as expected
that 1 of 2 tests failed.
When I look at /target/failsafe-reports/failsafe-summary.xml, I see:
<failsafe-summary result="255" />
Finally, if I run "mvn:site surefire-report:report", I get an html
page in /target/site/surefire-report.html that shows all 0s for the
report summary (tests, errors, failures, skipped, etc.)
Why would this be the case? I expected maven-surefire-report-plugin
to transform the file(s) located in /target/failsafe-reports into an
equivalent HTML report (indicating that 1 of 2 tests failed) located
in /target/site.
Is my configuration off?
-JR
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]