maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aslak Knutsen (JIRA)" <j...@codehaus.org>
Subject [jira] Updated: (SUREFIRE-744) NullPointerException in ConcurrentReporterManager, falsely report of "No tests were executed!"
Date Thu, 02 Jun 2011 14:33:22 GMT

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

Aslak Knutsen updated SUREFIRE-744:
-----------------------------------

    Attachment: MavenSurefireJUnit47RunnerTestCase.java

TestCase showing the issue

> NullPointerException in ConcurrentReporterManager, falsely report of "No tests were executed!"
> ----------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-744
>                 URL: http://jira.codehaus.org/browse/SUREFIRE-744
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Junit 4.7+ (parallel) support
>    Affects Versions: 2.8.1
>            Reporter: Aslak Knutsen
>         Attachments: MavenSurefireJUnit47RunnerTestCase.java
>
>
> See SUREFIRE-629, same result, just this time the assumption is on the use of multiple
@Ignore test cases
> JUnitCoreRunListener.fillTestCountMap prefill a Map with all the Descriptions for this
testrun, but it gets a bit confused when multiple tests use @Ignore on Class Level. 
> JUnit will report these as Description.isTest because they have no children, but they
are not, all their children are ignored.
> So these are added as Methods to some other Class, which means the TestSet Class lookup
on testSkipped results in null.
> a possible crude fix would be:
> {code:title=org.apache.maven.surefire.junitcore.JUnitCoreRunListener}
>     private void fillTestCountMap( Description description )
>     {
>         final ArrayList<Description> children = description.getChildren();
>         TestSet testSet = new TestSet( description );
>         Class<?> itemTestClass = null;
>         for ( Description item : children )
>         {
>             if ( item.isTest() && item.getMethodName() != null)
>             {
>                 testSet.incrementTestMethodCount();
>                 if ( itemTestClass == null )
>                 {
>                     itemTestClass = item.getTestClass();
>                 }
>             }
>             else if ( item.getChildren().size() > 0 )
>             {
>                 fillTestCountMap( item );
>             }
>             else 
>             {
>             	classMethodCounts.put( item.getClassName(), testSet );
>             }
>         }
>         if ( itemTestClass != null )
>         {
>             classMethodCounts.put( itemTestClass.getName(), testSet );
>         }
>     }
> {code}

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

        

Mime
View raw message