[
https://issues.apache.org/jira/browse/SUREFIRE-1546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16817361#comment-16817361
]
Tibor Digana edited comment on SUREFIRE-1546 at 4/14/19 5:06 PM:
-----------------------------------------------------------------
[~Srdo]
Don't talk about Surefire because latest version does not understand
DisplayName.
What is obious from your code and listener console is the fact that DisplayName
annotation has *bar({0})* but the console has *displayName: a parameterized
test (bar(int)), type: TEST, source: MethodSource*.
Now me as developer of Surefire should must be interested in the following call:
{code:java}
Optional<TestSource> testSource = testIdentifier.getSource();
String display = testIdentifier.getDisplayName(); // <<<------------
MethodSource methodSource = testSource.map( MethodSource.class::cast ).get();
// we are in the test method "bar"
String methodName = methodSource.getMethodName(); // returns "bar"
{code}
and I expect that {{display}} would have the string from the DisplayName
annotation, i.e. {{bar(15)}} etc.
I guess the user would expect the same. And if it is not like that then it is a
problem, and even more problematic if another "display name" is in the second
annotation {{ParameterizedTest}}.
How should I as Surefire developer cope with the JUnit API in this case of
parameterized tests?
was (Author: tibor17):
[~Srdo]
Don't talk about Surefire because latest version does not understand
DisplayName.
What is obious from your code and listener console is the fact that DisplayName
annotation has {{bar({0})}} but the console has {{displayName: a parameterized
test (bar(int)), type: TEST, source: MethodSource}}.
Now me as developer of Surefire should must be interested in the following call:
{code:java}
Optional<TestSource> testSource = testIdentifier.getSource();
String display = testIdentifier.getDisplayName(); // <<<------------
MethodSource methodSource = testSource.map( MethodSource.class::cast ).get();
// we are in the test method "bar"
String methodName = methodSource.getMethodName(); // returns "bar"
{code}
and I expect that {{display}} would have the string from the DisplayName
annotation, i.e. {{bar(15)}} etc.
I guess the user would expect the same. And if it is not like that then it is a
problem, and even more problematic if another "display name" is in the second
annotation {{ParameterizedTest}}.
How should I as Surefire developer cope with the JUnit API in this case of
parameterized tests?
> JUnit 5 runner does not honor JUnit 5 display names
> ---------------------------------------------------
>
> Key: SUREFIRE-1546
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1546
> Project: Maven Surefire
> Issue Type: Bug
> Components: JUnit 5.x support
> Affects Versions: 2.22.0
> Reporter: Romain Manni-Bucau
> Assignee: Tibor Digana
> Priority: Major
> Labels: junit5
> Fix For: 3.0.0-M4
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> JUnit 5 runner should respect the test @DisplayName instead of displaying the
> classname if any is defined. Seems last release doesn't support that feature
> of JUnit 5 making the console output and reports not the expected ones.
>
> Origin: https://github.com/junit-team/junit5/issues/990
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)