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

Alexander Kriegisch updated SUREFIRE-2222:
------------------------------------------
    Description: 
When running a parametrised JUnit 5 Jupiter test, display names are not used 
for XML report files and consequently also not in HTML reports.

 
{code:java}
@ParameterizedTest(name = "{0}")
@MethodSource("testParseModernStream_withAnnotationProcessingErrors_args")
void testParseModernStream_withAnnotationProcessingErrors(String jdkAndLocale, 
String stackTraceHeader) {
  // ...
}
{code}
The method source provides a list of test diaplay names, which e.g. my IDE 
recognises and displays correctly:

!image-2023-12-18-13-27-51-220.png!

Surefire, however, does not:
{code: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-3.0.xsd";
 version="3.0" name="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="5.448" tests="21" errors="0" skipped="0" failures="0">
  <!- ... -->
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[1]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.12"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[2]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.108"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[3]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.113"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[4]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.098"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[5]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.088"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[6]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.094"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[7]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.083"/>
</testsuite>
{code}
 
Please note, how the test case names are generic defaults with indices like 
{{testParseModernStream_withAnnotationProcessingErrors(String, String)[4]}}.

The same generic names are then reported in HTML reports for {{mvn 
surefire-report:report}} or {{mvn surefire-report:report-only}}.

  was:
When running a parametrised JUnit 5 Jupiter test, display names are not used 
for XML report files and consequently also not in HTML reports.

 
{code:java}
@ParameterizedTest(name = "{0}")
@MethodSource("testParseModernStream_withAnnotationProcessingErrors_args")
void testParseModernStream_withAnnotationProcessingErrors(String jdkAndLocale, 
String stackTraceHeader) {
  // ...
}
{code}
The method source provides a list of test diaplay names, which e.g. my IDE 
recognises and displays correctly:

!image-2023-12-18-13-27-51-220.png!

Surefire, however, does not:
{code: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-3.0.xsd";
 version="3.0" name="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="5.448" tests="21" errors="0" skipped="0" failures="0">
  <!- ... -->
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[1]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.12"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[2]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.108"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[3]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.113"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[4]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.098"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[5]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.088"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[6]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.094"/>
  <testcase name="testParseModernStream_withAnnotationProcessingErrors(String, 
String)[7]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
time="0.083"/>
</testsuite>
{code}
 
Please note, how the test case names are generic defaults with indices like 
{{testParseModernStream_withAnnotationProcessingErrors(String, String)[4]}}.


> Use JUnit 5 display name in test reports
> ----------------------------------------
>
>                 Key: SUREFIRE-2222
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-2222
>             Project: Maven Surefire
>          Issue Type: Improvement
>    Affects Versions: 3.2.2
>            Reporter: Alexander Kriegisch
>            Priority: Major
>         Attachments: image-2023-12-18-13-27-51-220.png
>
>
> When running a parametrised JUnit 5 Jupiter test, display names are not used 
> for XML report files and consequently also not in HTML reports.
>  
> {code:java}
> @ParameterizedTest(name = "{0}")
> @MethodSource("testParseModernStream_withAnnotationProcessingErrors_args")
> void testParseModernStream_withAnnotationProcessingErrors(String 
> jdkAndLocale, String stackTraceHeader) {
>   // ...
> }
> {code}
> The method source provides a list of test diaplay names, which e.g. my IDE 
> recognises and displays correctly:
> !image-2023-12-18-13-27-51-220.png!
> Surefire, however, does not:
> {code: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-3.0.xsd";
>  version="3.0" name="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
> time="5.448" tests="21" errors="0" skipped="0" failures="0">
>   <!- ... -->
>   <testcase 
> name="testParseModernStream_withAnnotationProcessingErrors(String, 
> String)[1]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
> time="0.12"/>
>   <testcase 
> name="testParseModernStream_withAnnotationProcessingErrors(String, 
> String)[2]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
> time="0.108"/>
>   <testcase 
> name="testParseModernStream_withAnnotationProcessingErrors(String, 
> String)[3]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
> time="0.113"/>
>   <testcase 
> name="testParseModernStream_withAnnotationProcessingErrors(String, 
> String)[4]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
> time="0.098"/>
>   <testcase 
> name="testParseModernStream_withAnnotationProcessingErrors(String, 
> String)[5]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
> time="0.088"/>
>   <testcase 
> name="testParseModernStream_withAnnotationProcessingErrors(String, 
> String)[6]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
> time="0.094"/>
>   <testcase 
> name="testParseModernStream_withAnnotationProcessingErrors(String, 
> String)[7]" classname="org.codehaus.plexus.compiler.javac.JavacCompilerTest" 
> time="0.083"/>
> </testsuite>
> {code}
>  
> Please note, how the test case names are generic defaults with indices like 
> {{testParseModernStream_withAnnotationProcessingErrors(String, String)[4]}}.
> The same generic names are then reported in HTML reports for {{mvn 
> surefire-report:report}} or {{mvn surefire-report:report-only}}.



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

Reply via email to