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());