[ 
http://jira.codehaus.org/browse/SUREFIRE-482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=157718#action_157718
 ] 

Michal Borowiecki commented on SUREFIRE-482:
--------------------------------------------

This is an issue for me too.

"Naming a class *Test without making it abstract and without putting any @Test 
annotation" does not seam unusual to me.

Mock object are one case.
Another one is starting a new project and creating a test class not having 
implemented any test methods yet. Having to make it abstract is an unnecessary 
nuisance. What is worse, you then have to remember to make it non-abstract 
again once you have written the first test.
Another case is wanting to temporarily disabling tests by annotating them with 
@Ignore. It is inconsistent that you can do it UNLESS there are no more methods 
with @Test annotation left in the class in which case the exception is raised.

In the end even if these cases were unusual they are not in any way an error 
and should not be reported as such and should not break a build.

I hope someone is convinced one day that this should be fixed :)


> Surefire tries to run JUnit4 tests that contain no @Test annotations
> --------------------------------------------------------------------
>
>                 Key: SUREFIRE-482
>                 URL: http://jira.codehaus.org/browse/SUREFIRE-482
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Junit 4.x support
>    Affects Versions: 2.4.2
>            Reporter: Mark Hobson
>         Attachments: test.zip
>
>
> 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.

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