You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tibor Digana (Jira)" <ji...@apache.org> on 2020/05/04 23:00:10 UTC

[jira] [Commented] (SUREFIRE-1553) @Unroll forces usage of JUnit Vintage

    [ https://issues.apache.org/jira/browse/SUREFIRE-1553?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17099407#comment-17099407 ] 

Tibor Digana commented on SUREFIRE-1553:
----------------------------------------

[~skrser]
[~clarkperkins]
You said that the method is empty:
{code:xml}
<testcase name="" classname="com.skrser.surefire.test.CalculatorSpockTest" time="0.078"/>
{code}

My problem is that {{TestIdentifier}} is {{ClassSource}} instead of {{MethodSource}}, even if the {{TestIdentifier#isTest()}} returns {{true}}.
My question is. How should I extract the method name if the test is class source?
Obviously it does not make logical sense. I can see in the debugger that the JUnit5 is running your method but the TestIdentifier says that it is a class. The class has the display name {{"Multiply: #a * #b = #expectedResult"}} but it should be understood as the displayname of the class and not the method. In order to extract the real method name, the TestIdentifier should be MethodSource and I will have an access to the method and name as well as their real display names by the annotation @DisplayName.
So from my point of view you should report a bug in [Spock|https://github.com/spockframework/spock/tree/master/spock-core] and provide a link to my comment. Provide the Spock team with [your first test project|https://github.com/skrser/maven-surefire-unroll].

> @Unroll forces usage of JUnit Vintage
> -------------------------------------
>
>                 Key: SUREFIRE-1553
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1553
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: JUnit 5.x support, Maven Surefire Plugin
>    Affects Versions: 2.22.0, 3.0.0-M4
>            Reporter: Sergey Skryabin
>            Assignee: Tibor Digana
>            Priority: Major
>
> If run
> {code}mvn clean test{code}
> JUnit4 tests and Spock tests (which not contain @Unroll) are executed normally. Once Spock test with @Unroll annotation appears, then Surefire execute
> {code}[INFO] Running JUnit Vintage{code}
>  and all other JUnit4 tests and Spock tests are wrapped with this runner. 
> In surefire-reports I see _TEST-<all tests executed before meeting @Unroll>.xml_ s and than
> _TEST-JUnit Vintage.xml_
> Though it could be done by intention, behaviour is different from 2.21.0 (no wrapping with Vintage). Also it much more visible to have separate reports per test class (both in console output and surefire-reports folder).
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)