From dee3715270a8da31095727e8f9f083bc6585e1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6sen?= Date: Tue, 14 Apr 2020 12:47:28 +0200 Subject: [PATCH] bz-64952 junitlauncher - properly report JUnit4 Parametrized test, in the XML report Closes #125 pull request at github/apache/ant repo --- CONTRIBUTORS | 1 + WHATSNEW | 4 ++++ contributors.xml | 4 ++++ .../optional/junitlauncher/LegacyXmlResultFormatter.java | 7 ++++++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 9d06fb746..69fc46bb4 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -158,6 +158,7 @@ Gilles Querret Gilles Scokart Glenn McAllister Glenn Twiggs +Gösen Greg Nelson Greg Roodt Greg Schueler diff --git a/WHATSNEW b/WHATSNEW index bf2406aab..9473c7136 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -19,6 +19,10 @@ Fixed bugs: and system-out Bugzilla Report 63436 + * Fixes a bug in junitlauncher task's legacy-xml formatter, where the testcase + representing a @Parameterized JUnit4 test wasn't being reported in the XML. + Bugzilla Report 64952 + Other changes: -------------- diff --git a/contributors.xml b/contributors.xml index a2969b5d2..bd46c455f 100644 --- a/contributors.xml +++ b/contributors.xml @@ -664,6 +664,10 @@ Glenn Twiggs + + Gösen + + Greg Nelson diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LegacyXmlResultFormatter.java b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LegacyXmlResultFormatter.java index 35df2782c..d86c35b3f 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LegacyXmlResultFormatter.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junitlauncher/LegacyXmlResultFormatter.java @@ -407,9 +407,14 @@ class LegacyXmlResultFormatter extends AbstractJUnitResultFormatter implements T private Optional findFirstParentClassSource(final TestIdentifier testId) { final Optional parent = testPlan.getParent(testId); - if (!parent.isPresent() || !parent.get().getSource().isPresent()) { + if (!parent.isPresent()) { return Optional.empty(); } + if (!parent.get().getSource().isPresent()) { + // the source of the parent is unknown, so we move up the + // hierarchy and try and find a class source + return findFirstParentClassSource(parent.get()); + } final TestSource parentSource = parent.get().getSource().get(); return parentSource instanceof ClassSource ? Optional.of((ClassSource) parentSource) : findFirstParentClassSource(parent.get());