You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Anatoly (Jira)" <ji...@apache.org> on 2022/10/13 11:54:00 UTC

[jira] [Updated] (SUREFIRE-2120) Surefire report is not produced with test name when using JUnit5 and Specs2

     [ https://issues.apache.org/jira/browse/SUREFIRE-2120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Anatoly updated SUREFIRE-2120:
------------------------------
    Description: 
Hi,

When running tests from terminal via 'mvn clean test' command, the generated surefire report in 'target/surefire-reports/' does not have a tests name. i.e:
{{}}
{code:java}
 {code}
{{<testcase name="" classname="samples.MySpecTest" time="0"/>}}

This messes up our TC reporting.

 
h2. Steps to reproduce
 # Clone my example: [Junit5Specs2SurefireTestName|https://github.com/anatolyra/Junit5Specs2SurefireTestName]
 # Run 'mvn clean test'
 # Open surefire report

When adding this config:
{code:java}
<configuration>
    <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
        <disable>false</disable>
        <version>3.0</version>
        <usePhrasedFileName>false</usePhrasedFileName>
        <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName>
        <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName>
        <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
    </statelessTestsetReporter>
    <consoleOutputReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5ConsoleOutputReporter">
        <disable>false</disable>
        <encoding>UTF-8</encoding>
        <usePhrasedFileName>false</usePhrasedFileName>
    </consoleOutputReporter>
    <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoReporter">
        <disable>false</disable>
        <usePhrasedFileName>false</usePhrasedFileName>
        <usePhrasedClassNameInRunning>true</usePhrasedClassNameInRunning>
        <usePhrasedClassNameInTestCaseSummary>true</usePhrasedClassNameInTestCaseSummary>
    </statelessTestsetInfoReporter>
</configuration>{code}
I get this console output:

{{}}
{code:java}
[INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running null [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.075 s - in null [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------{code}
{{}}

Notice the 'null' in the place of the class name.

And this output in the report:
{{}}
{code:java}
<testcase name="" classname="Single test" time="0.001"/>{code}
{{{{}}{}}}The test name is in classname but again, nothing in the name attribute.
h2. Context
 * maven-surefire-plugin version 3.0.0-M7
 * scala-maven-plugin both version 4.4.0 and 4.7.2
 * specs2-junit_2.13 version 4.12.1-junit-5 (uses junit-vintage-engine version 5.3.1, also tried with 5.9.0)
 * Scala version 2.13.8
 * Build Tool/IDE: Maven

  was:
Hi,

When running tests from terminal via 'mvn clean test' command, the generated surefire report in 'target/surefire-reports/' does not have a tests name. i.e:
{{}}
{code:java}

{code}
{{<testcase name="" classname="samples.MySpecTest" time="0"/>}}


This messes up our TC reporting.

 
h2. Steps to reproduce
 # Clone my example: [Junit5Specs2SurefireTestName|https://github.com/anatolyra/Junit5Specs2SurefireTestName]
 # Run 'mvn clean test'
 # Open surefire report

When adding this config:
{code:java}
<configuration> <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter"> <disable>false</disable> <version>3.0</version> <usePhrasedFileName>false</usePhrasedFileName> <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName> <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName> <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName> </statelessTestsetReporter> <consoleOutputReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5ConsoleOutputReporter"> <disable>false</disable> <encoding>UTF-8</encoding> <usePhrasedFileName>false</usePhrasedFileName> </consoleOutputReporter> <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoReporter"> <disable>false</disable> <usePhrasedFileName>false</usePhrasedFileName> <usePhrasedClassNameInRunning>true</usePhrasedClassNameInRunning> <usePhrasedClassNameInTestCaseSummary>true</usePhrasedClassNameInTestCaseSummary> </statelessTestsetInfoReporter> </configuration>{code}
I get this console output:

{{}}
{code:java}
[INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running null [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.075 s - in null [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------{code}
{{}}

Notice the 'null' in the place of the class name.

And this output in the report:
{{}}
{code:java}
<testcase name="" classname="Single test" time="0.001"/>{code}
{{{}{}}}The test name is in classname but again, nothing in the name attribute.
h2. Context
 * maven-surefire-plugin version 3.0.0-M7
 * scala-maven-plugin both version 4.4.0 and 4.7.2
 * specs2-junit_2.13 version 4.12.1-junit-5 (uses junit-vintage-engine version 5.3.1, also tried with 5.9.0)
 * Scala version 2.13.8
 * Build Tool/IDE: Maven


> Surefire report is not produced with test name when using JUnit5 and Specs2
> ---------------------------------------------------------------------------
>
>                 Key: SUREFIRE-2120
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-2120
>             Project: Maven Surefire
>          Issue Type: Bug
>    Affects Versions: 3.0.0-M7
>            Reporter: Anatoly
>            Priority: Major
>
> Hi,
> When running tests from terminal via 'mvn clean test' command, the generated surefire report in 'target/surefire-reports/' does not have a tests name. i.e:
> {{}}
> {code:java}
>  {code}
> {{<testcase name="" classname="samples.MySpecTest" time="0"/>}}
> This messes up our TC reporting.
>  
> h2. Steps to reproduce
>  # Clone my example: [Junit5Specs2SurefireTestName|https://github.com/anatolyra/Junit5Specs2SurefireTestName]
>  # Run 'mvn clean test'
>  # Open surefire report
> When adding this config:
> {code:java}
> <configuration>
>     <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
>         <disable>false</disable>
>         <version>3.0</version>
>         <usePhrasedFileName>false</usePhrasedFileName>
>         <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName>
>         <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName>
>         <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
>     </statelessTestsetReporter>
>     <consoleOutputReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5ConsoleOutputReporter">
>         <disable>false</disable>
>         <encoding>UTF-8</encoding>
>         <usePhrasedFileName>false</usePhrasedFileName>
>     </consoleOutputReporter>
>     <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoReporter">
>         <disable>false</disable>
>         <usePhrasedFileName>false</usePhrasedFileName>
>         <usePhrasedClassNameInRunning>true</usePhrasedClassNameInRunning>
>         <usePhrasedClassNameInTestCaseSummary>true</usePhrasedClassNameInTestCaseSummary>
>     </statelessTestsetInfoReporter>
> </configuration>{code}
> I get this console output:
> {{}}
> {code:java}
> [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running null [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.075 s - in null [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------{code}
> {{}}
> Notice the 'null' in the place of the class name.
> And this output in the report:
> {{}}
> {code:java}
> <testcase name="" classname="Single test" time="0.001"/>{code}
> {{{{}}{}}}The test name is in classname but again, nothing in the name attribute.
> h2. Context
>  * maven-surefire-plugin version 3.0.0-M7
>  * scala-maven-plugin both version 4.4.0 and 4.7.2
>  * specs2-junit_2.13 version 4.12.1-junit-5 (uses junit-vintage-engine version 5.3.1, also tried with 5.9.0)
>  * Scala version 2.13.8
>  * Build Tool/IDE: Maven



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