diff --git a/WHATSNEW b/WHATSNEW index 8fe76f2ff..93f0ea14b 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -34,6 +34,9 @@ Fixed bugs: * would fail for files that contained lines longer than 8kB. +* Some junit formatters incorrectly assumed that all testcases would + inherit from junit.framework.TestCase. + Other changes: -------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java index 3babbe902..f76561b0b 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java @@ -56,6 +56,7 @@ package org.apache.tools.ant.taskdefs.optional.junit; import java.lang.reflect.Method; +import junit.framework.Test; import junit.framework.TestCase; /** @@ -85,8 +86,8 @@ public class JUnitVersionHelper { * access to the name of a TestCase via reflection that is * supposed to work with version before and after JUnit 3.7. */ - public static String getTestCaseName(TestCase t) { - if (testCaseName != null) { + public static String getTestCaseName(Test t) { + if (t instanceof TestCase && testCaseName != null) { try { return (String) testCaseName.invoke(t, new Object[0]); } catch (Throwable e) {} diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java index 7d8a91e97..a2da3117f 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java @@ -200,7 +200,7 @@ public class PlainJUnitResultFormatter implements JUnitResultFormatter { public void endTest(Test test) { synchronized (wri) { wri.print("Testcase: " - + JUnitVersionHelper.getTestCaseName((TestCase) test)); + + JUnitVersionHelper.getTestCaseName(test)); if (Boolean.TRUE.equals(failed.get(test))) { return; } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java index 25d86fc0c..d2b2c34e5 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java @@ -195,7 +195,7 @@ public class XMLJUnitResultFormatter implements JUnitResultFormatter, XMLConstan Element currentTest = doc.createElement(TESTCASE); currentTest.setAttribute(ATTR_NAME, - JUnitVersionHelper.getTestCaseName((TestCase) t)); + JUnitVersionHelper.getTestCaseName(t)); rootElement.appendChild(currentTest); testElements.put(t, currentTest); }