svn commit: rev 22746 - avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks

[email protected]
Newsgroups gmane.comp.jakarta.avalon.cvs
Message-ID <[email protected]>
Author: mcconnell
Date: Thu Jul  8 19:43:38 2004
New Revision: 22746

Modified:
   avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JUnitTestTask.java
Log:
Add ant concat handling following suggestion from Sebastian Bazley concerning generation of unit test reports when running under gump.

Modified: avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JUnitTestTask.java
==============================================================================
--- avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JUnitTestTask.java	(original)
+++ avalon/trunk/tools/magic/src/main/org/apache/avalon/tools/tasks/JUnitTestTask.java	Thu Jul  8 19:43:38 2004
@@ -24,10 +24,12 @@
 import org.apache.tools.ant.taskdefs.Copy;
 import org.apache.tools.ant.taskdefs.Exit;
 import org.apache.tools.ant.taskdefs.Javac;
+import org.apache.tools.ant.taskdefs.Concat;
 import org.apache.tools.ant.taskdefs.optional.junit.BatchTest;
 import org.apache.tools.ant.taskdefs.optional.junit.FormatterElement;
 import org.apache.tools.ant.taskdefs.optional.junit.JUnitTask;
 import org.apache.tools.ant.types.Environment;
+import org.apache.tools.ant.types.FileList;
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Path;
 
@@ -149,14 +151,6 @@
         }
     }
 
-    private void fail( final String message )
-    {
-        final Exit exit = (Exit) getProject().createTask( "fail" );
-        exit.setMessage( message );
-        exit.init();
-        exit.execute();
-    }
-
     private void copyUnitTestResource( final File dest )
     {
         final File build = getContext().getBuildDirectory();
@@ -339,5 +333,54 @@
         {
             return Project.toBoolean( value );
         }
+    }
+
+    private void fail( final String message )
+    {
+        final File reports = getContext().getTestReportsDirectory();
+        if( reports.exists() && getHome().isGump() )
+        {
+            FileSet list = new FileSet();
+            list.setDir( reports );
+            list.setIncludes( "**/*.txt" );
+
+            Concat concat = (Concat) getProject().createTask( "concat" );
+            concat.addFileset( list );
+            concat.addHeader( getHeader() );
+            concat.addFooter( getFooter() );
+            concat.setTaskName( getTaskName() );
+            concat.init();
+            concat.execute();
+        }
+
+        final Exit exit = (Exit) getProject().createTask( "fail" );
+        exit.setMessage( message );
+        exit.init();
+        exit.execute();
+    }
+
+    private Concat.TextElement getHeader()
+    {
+        Concat.TextElement header = new Concat.TextElement();
+        header.setProject( getProject() );
+        header.addText(
+    "-------------------------------------------------------------------------------" 
++ "\n One or more errors occured during unit tests."
++ "\n Listing error reports."
++ "\n-------------------------------------------------------------------------------" 
++ "\n" );
+        return header;
+    }
+
+    private Concat.TextElement getFooter()
+    {
+        Concat.TextElement footer = new Concat.TextElement();
+        footer.setProject( getProject() );
+        footer.addText(
+    "-------------------------------------------------------------------------------"
++ "\nEnd of Listing."
++ "\n-------------------------------------------------------------------------------" 
++ "\n" );
+        return footer;
     }
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.