Uploaded image for project: 'Maven Surefire'
  1. Maven Surefire
  2. SUREFIRE-482

Surefire tries to run JUnit4 tests that contain no @Test annotations

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.4.2
    • 2.7
    • Junit 4.x support
    • None

    Description

      Similar to SUREFIRE-346 but for JUnit4, Surefire tries to run classes that contain no @Test annotations as tests, resulting in the exception:

      java.lang.Exception: No runnable methods
      at org.junit.internal.runners.MethodValidator.validateInstanceMethods(MethodValidator.java:32)
      at org.junit.internal.runners.MethodValidator.validateMethodsForDefaultRunner(MethodValidator.java:43)
      at org.junit.internal.runners.JUnit4ClassRunner.validate(JUnit4ClassRunner.java:36)
      at org.junit.internal.runners.JUnit4ClassRunner.<init>(JUnit4ClassRunner.java:27)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
      at org.junit.internal.requests.ClassRequest.buildRunner(ClassRequest.java:33)
      at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:28)
      at org.apache.maven.surefire.junit4.JUnit4TestSet.<init>(JUnit4TestSet.java:45)
      at org.apache.maven.surefire.junit4.JUnit4DirectoryTestSuite.createTestSet(JUnit4DirectoryTestSuite.java:56)
      at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.locateTestSets(AbstractDirectoryTestSuite.java:96)
      at org.apache.maven.surefire.Surefire.createSuiteFromDefinition(Surefire.java:209)
      at org.apache.maven.surefire.Surefire.run(Surefire.java:156)
      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:338)
      at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)

      Such classes should be ignored by Surefire.

      Attachments

        1. JUnit4DirectoryTestSuite.java
          3 kB
          Tom
        2. test.zip
          0.9 kB
          Mark Hobson

        Issue Links

          Activity

            People

              krosenvold Kristian Rosenvold
              markh Mark Hobson
              Votes:
              40 Vote for this issue
              Watchers:
              21 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: