maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Arseniy Alekseyev (JIRA)" <j...@codehaus.org>
Subject [jira] Issue Comment Edited: (SUREFIRE-482) Surefire tries to run JUnit4 tests that contain no @Test annotations
Date Thu, 11 Nov 2010 15:10:06 GMT

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

Arseniy Alekseyev edited comment on SUREFIRE-482 at 11/11/10 9:08 AM:
----------------------------------------------------------------------

Kristian, thank you for fixing this.

However, I think I've found a bug that could lead to more serious consequences than we have
thought of.
When checking 'value' parameter for @RunWith attribute
instead of "if ( suite.isAssignableFrom( value ) )"
it  should be "if ( runner.isAssignableFrom( value ) )" 
or better yet "if ( true )".

As it is now, classes with custom runners, or even with a standard Theories runner could be
ignored. Should I create a new issue with a test?

      was (Author: rotsor):
    Kristian, thank you for fixing this.

However, I think I've found a bug that could lead to more serious consequences than we have
thought of: 
instead of "if ( suite.isAssignableFrom( value ) )"
it  should be "if ( runner.isAssignableFrom( value ) )" 
or better yet "if ( true )".

As it is now, classes with custom runners, or even with a standard Theories runner could be
ignored. Should I create a new issue with a test?
  
> 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
>            Assignee: Kristian Rosenvold
>             Fix For: 2.7
>
>         Attachments: JUnit4DirectoryTestSuite.java, 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

        

Mime
View raw message