Fargier Stephane created SUREFIRE-918:
-----------------------------------------
Summary: Phase post-integration-test not executed when tests are
timed out with option 'forkedProcessTimeoutInSeconds'
Key: SUREFIRE-918
URL: https://jira.codehaus.org/browse/SUREFIRE-918
Project: Maven Surefire
Issue Type: Bug
Components: Maven Failsafe Plugin
Affects Versions: 2.12.4
Environment: Windows 7 64 bits
Ubuntu 11.10 64 bits
Reporter: Fargier Stephane
Attachments: failsafe-timeout.zip
In a project we use the failsafe plugin for our ITs.
The option 'forkedProcessTimeoutInSeconds' is used to have a time limit for the
test execution.
{code}
<configuration>
<forkedProcessTimeoutInSeconds>3</forkedProcessTimeoutInSeconds>
</configuration>
{code}
We also have goals registered in the post-integration-phase for environment
clean-up.
When the tests are in timeout, the maven execution is stopped and the
post-integration-test phase is not executed, leaving our environment dirty. The
post-integration-test phase should be executed after timeout the same way it is
executed after failed tests.
Attached is a simple project illustrating the issue:
* a JUnit test that runs forever
* a goal is registered in the post-integration phase
* the timeout is set on the project
If you run it, you will see the post-integration-phase is not executed:
{code}
[INFO] --- maven-failsafe-plugin:2.12.4:integration-test (integration-test) @
failsave.timeout.example ---
[INFO] Failsafe report directory:
/home/sfargier/Téléchargements/failsafe-timeout/target/failsafe-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestRunsForeverITCase
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.468s
[INFO] Finished at: Wed Oct 31 14:20:58 CET 2012
[INFO] Final Memory: 9M/490M
[INFO] ------------------------------------------------------------------------
{code}
As a side-note, if we set the forkMode option to 'always', then the
post-integration-test is executed even if the timeout expires. But there are
some Java processes for the tests (the one running surefire-booter-*.jar) that
are not killed. There seems to be an already opened issue for that
(http://jira.codehaus.org/browse/SUREFIRE-773).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira