You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Geoff Denning (JIRA)" <ji...@codehaus.org> on 2013/01/01 00:29:13 UTC

[jira] (SUREFIRE-944) Surefire does not execute tests on abstract classes that contain static nested classes

Geoff Denning created SUREFIRE-944:
--------------------------------------

             Summary: Surefire does not execute tests on abstract classes that contain static nested classes
                 Key: SUREFIRE-944
                 URL: https://jira.codehaus.org/browse/SUREFIRE-944
             Project: Maven Surefire
          Issue Type: Bug
          Components: Maven Surefire Plugin
    Affects Versions: 2.13
            Reporter: Geoff Denning


If a test class is abstract or interface, but contains a nested concrete static class, Surefire won't find the enclosed tests, even when @RunWith(Enclosed.class) is specified.  For example:

import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;

@RunWith(Enclosed.class)
public abstract class TopLevelAbstractClassTest {
       public static class InnerTest {
               @Test
               public void testSomething() {
               }
       }
}

The reason why this is an issue is that projects such as Hystrix (https://github.com/Netflix/Hystrix) put unit tests inside nested classes in the implementation classes.  Currently Hystrix uses Gradle, but I am working to Mavenize the project.

The problem appears to be in JUnit4TestChecker.isValidJUnit4Test, which ensures that the class is not abstract before checking the RunWith annotation.

I've created an integration test and potential fix which are available here: https://github.com/gdenning/maven-surefire/commit/bc376f8dbbd6611bd9a645c8a53c80b4f450aac6

I haven't submitted a pull request yet because the integration tests aren't picking up my code changes for some reason so the test is still failing. If I get it working I will submit a pull request on GitHub.

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