NullPointerException in DemultiplexingRunListener, falsely report of "No tests 
were executed!"
----------------------------------------------------------------------------------------------

                 Key: SUREFIRE-629
                 URL: http://jira.codehaus.org/browse/SUREFIRE-629
             Project: Maven Surefire
          Issue Type: Bug
          Components: Junit 4.x support
    Affects Versions: 2.5
         Environment: Maven Surefire 2.5
Surefire JUnit 4.7
            Reporter: Aslak Knutsen
            Priority: Critical


Assumption:
The DemultiplexingRunListener assumes a Test will be Started before it Fails or 
Finishes.  

Reality:
JUnits ParentRunner is responsible for adding the BeforeClass/AfterClass 
statements to the statement execution chain. After BeforeClass is executed, a 
Statement that delegates to the abstract method: runChild(T child, RunNotifier 
notifier) is called. As the JavaDoc explains: "Subclasses are responsible for 
making sure that relevant test events are reported through {...@code 
notifier}". When a @BeforeClass fail, the child that should handle the relevant 
test events(Started, Failed, Finished) is never executed.

Result:
When Test Failed event is received in DemultiplexingRunListener without a 
Started event received first, it causes a NullPointException because there is 
no ClassReporter setup for that class yet. When this Exception is thrown from 
the DemultiplexingRunListene, JUnit catches the exception and reports is as a 
Failed test. But to avoid a wild loop, it removes the failing Listener before 
calling Failed test again. Since the DemultiplexingRunListener now is removed 
from the chain it will never receive the RunFinished event and the recorded 
state will never be replayed on the ReportManager.

The End result: 
ReporterManager falsely believe no Test were run.


-- 
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