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

Pavlo Shevchenko commented on SUREFIRE-2298:
--------------------------------------------

This change also breaks the reporting of Cucumber tests.

Steps to reproduce:
 # Set up the sample Cucumber project using "cucumber-archetype" 
([ref|https://cucumber.io/docs/guides/10-minute-tutorial/#create-an-empty-cucumber-project]):
 # For Surefire 3.5.2, the console output will be:

{code:java}
[INFO] Running hellocucumber.RunCucumberTestScenario: The example               
        # hellocucumber/example.feature:3
  Given an example scenario                 # 
hellocucumber.StepDefinitions.anExampleScenario()
  When all step definitions are implemented # 
hellocucumber.StepDefinitions.allStepDefinitionsAreImplemented()
  Then the scenario passes                  # 
hellocucumber.StepDefinitions.theScenarioPasses()
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.065 s 
-- in hellocucumber.RunCucumberTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 {code}
, and the XML report ("TEST-hellocucumber.RunCucumberTest.xml") will contain a 
single test case:

{code:java}
<testcase name="An example - The example" classname="An example" time="0.028"> 
{code}

 # With Surefire 3.5.3, on the other hand, the output will say that no tests 
were run:

{code:java}
[INFO] Running hellocucumber.RunCucumberTestScenario: The example               
        # hellocucumber/example.feature:3
  Given an example scenario                 # 
hellocucumber.StepDefinitions.anExampleScenario()
  When all step definitions are implemented # 
hellocucumber.StepDefinitions.allStepDefinitionsAreImplemented()
  Then the scenario passes                  # 
hellocucumber.StepDefinitions.theScenarioPasses()
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 s 
-- in hellocucumber.RunCucumberTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 {code}
, and the XML report will contain no test cases.

> @Nested test classes are not reported properly
> ----------------------------------------------
>
>                 Key: SUREFIRE-2298
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-2298
>             Project: Maven Surefire
>          Issue Type: Bug
>    Affects Versions: 3.5.3
>            Reporter: Leonard Brünings
>            Priority: Major
>
> Given this example test you can see that the {{@Nested}} test classes are not 
> reported correctly. In 3.5.2 and earlier all executions land in the 
> {{TEST-BaseNestedTest$Inner.xml}} and with the changes in 3.5.3 they are 
> distributed in all files. However, the nested classes belong to the enclosing 
> class and the reporting should reflect that, so it would be more accurate to 
> report the nested executions as part of the enclosing tests (see below).
> [~marcphilipp] please chime in.
>  
> {code:java}
> import org.junit.jupiter.api.*;
> abstract class BaseNestedTest {
>     @Test
>     void outerTest() {
>     }
>     
>     @Nested
>     class Inner {
>         @Test
>         void innerTest() {
>         }
>     }
> }
> class FirstNestedTest extends BaseNestedTest {
> }
> class SecondNestedTest extends BaseNestedTest {
> }{code}
> This was most likely caused by 
> [https://github.com/apache/maven-surefire/commit/5aeca19716dedc4cbcab8d68dfc74a99f50ce9ee]
> 3.5.2
> {code:java|title=TEST-FirstNestedTest.xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
>  version="3.0.2" name="FirstNestedTest" time="0.019" tests="0" errors="0" 
> skipped="0" failures="0">
> </testsuite>
> {code}
> {code:java|title=TEST-SecondNestedTest.xml}
>  <?xml version="1.0" encoding="UTF-8"?>
> <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
>  version="3.0.2" name="SecondNestedTest" time="0.004" tests="0" errors="0" 
> skipped="0" failures="0">
> </testsuite>
> {code}
> {code:java|title=TEST-BaseNestedTest$Inner.xml}
>  <?xml version="1.0" encoding="UTF-8"?>
> <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
>  version="3.0.2" name="BaseNestedTest$Inner" time="0.001" tests="2" 
> errors="0" skipped="0" failures="0">
>   <testcase name="outerTest" classname="FirstNestedTest" time="0.007"/>
>   <testcase name="innerTest" classname="BaseNestedTest$Inner" time="0.0"/>
>   <testcase name="innerTest" classname="BaseNestedTest$Inner" time="0.0"/>
>   <testcase name="outerTest" classname="SecondNestedTest" time="0.001"/>
> </testsuite>
> {code}
> -------------------
> 3.5.3
> {code:java|title=TEST-FirstNestedTest.xml}
>  <?xml version="1.0" encoding="UTF-8"?>
> <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
>  version="3.0.2" name="FirstNestedTest" time="0.019" tests="1" errors="0" 
> skipped="0" failures="0">
>   <testcase name="outerTest" classname="FirstNestedTest" time="0.007"/>
> </testsuite>
> {code}
> {code:java|title=TEST-SecondNestedTest.xml}
>  <?xml version="1.0" encoding="UTF-8"?>
> <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
>  version="3.0.2" name="SecondNestedTest" time="0.003" tests="1" errors="0" 
> skipped="0" failures="0">
>   </properties>
>   <testcase name="outerTest" classname="SecondNestedTest" time="0.001"/>
> </testsuite>
> {code}
> {code:java|title=TEST-BaseNestedTest$Inner.xml}
>  <?xml version="1.0" encoding="UTF-8"?>
> <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
>  version="3.0.2" name="BaseNestedTest$Inner" time="0.001" tests="1" 
> errors="0" skipped="0" failures="0">
>   <testcase name="innerTest" classname="BaseNestedTest$Inner" time="0.001"/>
>   <testcase name="innerTest" classname="BaseNestedTest$Inner" time="0.0"/>
> </testsuite>
> {code}
>  
> -------------------
> Expected reporting
>  
> {code:java|title=TEST-FirstNestedTest.xml}
>  <?xml version="1.0" encoding="UTF-8"?>
> <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
>  version="3.0.2" name="FirstNestedTest" time="0.019" tests="1" errors="0" 
> skipped="0" failures="0">
>   <testcase name="outerTest" classname="FirstNestedTest" time="0.007"/>
>   <testcase name="innerTest" classname="BaseNestedTest$Inner" time="0.001"/>
> </testsuite>
> {code}
> {code:java|title=TEST-SecondNestedTest.xml}
>  <?xml version="1.0" encoding="UTF-8"?>
> <testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd";
>  version="3.0.2" name="SecondNestedTest" time="0.003" tests="1" errors="0" 
> skipped="0" failures="0">
>   </properties>
>   <testcase name="outerTest" classname="SecondNestedTest" time="0.001"/>
>   <testcase name="innerTest" classname="BaseNestedTest$Inner" time="0.0"/>
> </testsuite>
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to