Author: jglick
Date: Thu Jun  1 22:27:26 2006
New Revision: 411044

URL: http://svn.apache.org/viewvc?rev=411044&view=rev
Log:
Stefan pointed out that the XML formatter was mistakenly using 
"JUnit4TestFacade"
as the "class name" for simple TestCase's run under JUnit 4.

Modified:
    
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java
    
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java?rev=411044&r1=411043&r2=411044&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java
 (original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitVersionHelper.java
 Thu Jun  1 22:27:26 2006
@@ -93,4 +93,22 @@
         return "unknown";
     }
 
+    /**
+     * Tries to find the name of the class which a test represents
+     * across JUnit 3 and 4.
+     */
+    static String getTestCaseClassName(Test test) {
+        String className = test.getClass().getName();
+        if (className.equals("junit.framework.JUnit4TestCaseFacade")) {
+            // JUnit 4 wraps solo tests this way. We can extract
+            // the original test name with a little hack.
+            String name = test.toString();
+            int paren = name.lastIndexOf('(');
+            if (paren != -1 && name.endsWith(")")) {
+                className = name.substring(paren + 1, name.length() - 1);
+            }
+        }
+        return className;
+    }
+
 }

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java?rev=411044&r1=411043&r2=411044&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java
 (original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLJUnitResultFormatter.java
 Thu Jun  1 22:27:26 2006
@@ -200,7 +200,7 @@
             // a TestSuite can contain Tests from multiple classes,
             // even tests with the same name - disambiguate them.
             currentTest.setAttribute(ATTR_CLASSNAME,
-                                     test.getClass().getName());
+                    JUnitVersionHelper.getTestCaseClassName(test));
             rootElement.appendChild(currentTest);
             testElements.put(test, currentTest);
         } else {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to