[ 
http://jira.codehaus.org/browse/SUREFIRE-432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Bentmann updated SUREFIRE-432:
---------------------------------------

    Attachment: testng-execute-error.patch

Fixed test, the requirement on TestSuite.txt was too much. All that matters is 
the TestSuite-output.txt with the stack trace.

> Surefire swallows redirected test output if uncaught exceptions occur in 
> forked SurefireBooter
> ----------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-432
>                 URL: http://jira.codehaus.org/browse/SUREFIRE-432
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: process forking
>    Affects Versions: 2.4
>         Environment: Maven 2.0.8, JDK 1.5.0_12, WinXP
>            Reporter: Benjamin Bentmann
>         Attachments: testng-execute-error.patch, testng-execute-error.patch
>
>
> If Surefire
> - forks a test and
> - is configured to redirect test output to a file and
> - encounters an uncaught exception in its internals
> the tests fail (as expected) but the user does not get any information about 
> the error, i.e. the txt files under target/surefire-reports are of zero 
> length. This can be quite fustrating.
> Attached is an integration test which produces the following exception:
> {noformat}
> java.lang.reflect.InvocationTargetException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at 
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:334)
>       at 
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980)
> Caused by: org.testng.TestNGException: 
> Cyclic graph of methods
>       at org.testng.internal.Graph.topologicalSort(Graph.java:117)
>       at 
> org.testng.internal.MethodHelper.topologicalSort(MethodHelper.java:494)
>       at org.testng.internal.MethodHelper.sortMethods(MethodHelper.java:544)
>       at 
> org.testng.internal.MethodHelper.internalCollectAndOrderMethods(MethodHelper.java:77)
>       at 
> org.testng.internal.MethodHelper.collectAndOrderMethods(MethodHelper.java:49)
>       at org.testng.TestRunner.initMethods(TestRunner.java:337)
>       at org.testng.TestRunner.init(TestRunner.java:216)
>       at org.testng.TestRunner.init(TestRunner.java:178)
>       at org.testng.TestRunner.<init>(TestRunner.java:127)
>       at 
> org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:454)
>       at org.testng.SuiteRunner.privateRun(SuiteRunner.java:235)
>       at org.testng.SuiteRunner.run(SuiteRunner.java:191)
>       at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:808)
>       at org.testng.TestNG.runSuitesLocally(TestNG.java:776)
>       at org.testng.TestNG.run(TestNG.java:701)
>       at 
> org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:64)
>       at 
> org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:136)
>       at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>       ... 6 more
> {noformat}
> This uncaught exception causes abnormal completion of Surefire.run() such 
> that reporterManager.runCompleted() never gets called. Without the call the 
> runCompleted(), Reporter.writeFooter() gets never called, too. This means 
> ForkingStreamConsumer.consumeLine() will never call 
> OutputConsumer.testSetCompleted(). However, the later call would be required 
> to properly flush the FileWriter employed by FileOutputConsumerProxy.
> I think what is needed is a means in SurefireBooter.fork() to flush/close the 
> StreamConsumers after the call to CommandLineUtils.executeCommandLine() 
> returned.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to