You are viewing a plain text version of this content. The canonical link for it is here.
Posted to surefire-commits@maven.apache.org by br...@apache.org on 2006/07/31 15:24:41 UTC

svn commit: r427114 - in /maven/surefire/trunk: surefire-api/src/main/java/org/apache/maven/surefire/report/ surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/

Author: brett
Date: Mon Jul 31 06:24:40 2006
New Revision: 427114

URL: http://svn.apache.org/viewvc?rev=427114&view=rev
Log:
[MSUREFIRE-141] list the failed/erroroneous test cases at the end to make it easier to find them
Submitted by: Mark Holster

Modified:
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/Reporter.java
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManager.java
    maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java?rev=427114&r1=427113&r2=427114&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/AbstractReporter.java Mon Jul 31 06:24:40 2006
@@ -17,6 +17,8 @@
  */
 
 import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Locale;
 
 /**
@@ -30,8 +32,18 @@
 
     protected int errors;
 
+    /**
+     * Holds the source(s) that causes the error(s).
+     */
+    private Collection errorSources = new ArrayList();
+
     protected int failures;
 
+    /**
+     * Holds the source(s) that causes the failure(s).
+     */
+    private Collection failureSources = new ArrayList();
+
     protected long startTime;
 
     protected long endTime;
@@ -94,6 +106,22 @@
     {
     }
 
+    /**
+     * @see org.apache.maven.surefire.report.Reporter#getFailureSources()
+     */
+    public Collection getFailureSources()
+    {
+        return this.failureSources;
+    }
+
+    /**
+     * @see org.apache.maven.surefire.report.Reporter#getErrorSources()
+     */
+    public Collection getErrorSources()
+    {
+        return this.errorSources;
+    }
+
     // ----------------------------------------------------------------------
     // Test
     // ----------------------------------------------------------------------
@@ -118,14 +146,14 @@
     public void testError( ReportEntry report, String stdOut, String stdErr )
     {
         ++errors;
-
+        errorSources.add( report.getName() );
         endTest();
     }
 
     public void testFailed( ReportEntry report, String stdOut, String stdErr )
     {
         ++failures;
-
+        failureSources.add( report.getName() );
         endTest();
     }
 
@@ -173,6 +201,11 @@
         failures = 0;
 
         completedCount = 0;
+
+        this.failureSources = new ArrayList();
+
+        this.errorSources = new ArrayList();
+
     }
 
     // ----------------------------------------------------------------------

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/Reporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/Reporter.java?rev=427114&r1=427113&r2=427114&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/Reporter.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/Reporter.java Mon Jul 31 06:24:40 2006
@@ -1,5 +1,7 @@
 package org.apache.maven.surefire.report;
 
+import java.util.Collection;
+
 /*
  * Copyright 2001-2006 The Apache Software Foundation.
  *
@@ -111,4 +113,18 @@
      * @return
      */
     int getNumSkipped();
+
+    /**
+     * Gives the source(s) that causes the error(s).
+     *
+     * @return The source(s).
+     */
+    Collection getErrorSources();
+
+    /**
+     * Gives the source(s) that causes the failures(s).
+     *
+     * @return The source(s).
+     */
+    Collection getFailureSources();
 }

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManager.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManager.java?rev=427114&r1=427113&r2=427114&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManager.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManager.java Mon Jul 31 06:24:40 2006
@@ -21,6 +21,8 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
@@ -31,8 +33,18 @@
 
     private int errors;
 
+    /**
+     * Holds the sources of the error.
+     */
+    private Collection errorSources = new ArrayList();
+
     private int failures;
 
+    /**
+     * Holds the sources of the failures.
+     */
+    private Collection failureSources = new ArrayList();
+
     private List reports;
 
     private PrintStream oldOut;
@@ -156,6 +168,25 @@
 
         writeFooter( "" );
         writeFooter( "Results :" );
+        writeFooter( "" );
+        if ( failures > 0 )
+        {
+            writeFooter( "Failed tests: " );
+            for ( Iterator iterator = this.failureSources.iterator(); iterator.hasNext(); )
+            {
+                writeFooter( "  " + iterator.next() );
+            }
+            writeFooter( "" );
+        }
+        if ( errors > 0 )
+        {
+            writeFooter( "Tests in error: " );
+            for ( Iterator iterator = this.errorSources.iterator(); iterator.hasNext(); )
+            {
+                writeFooter( "  " + iterator.next() );
+            }
+            writeFooter( "" );
+        }
         writeFooter( "Tests run: " + completedCount + ", Failures: " + failures + ", Errors: " + errors +
             ", Skipped: " + skipped );
         writeFooter( "" );
@@ -195,8 +226,10 @@
             skipped += reporter.getNumSkipped();
 
             errors += reporter.getNumErrors();
+            errorSources.addAll( reporter.getErrorSources() );
 
             failures += reporter.getNumFailures();
+            failureSources.addAll( reporter.getFailureSources() );
 
             completedCount += reporter.getNumTests();
         }

Modified: maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java?rev=427114&r1=427113&r2=427114&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGReporter.java Mon Jul 31 06:24:40 2006
@@ -75,15 +75,15 @@
     {
         String rawString = bundle.getString( "testStarting" );
         String group = groupString( result.getMethod().getGroups(), result.getTestClass().getName() );
-        ReportEntry report = new ReportEntry( source, result.getTestClass().getName() + "#" +
-            result.getMethod().getMethodName(), group, rawString );
+        ReportEntry report = new ReportEntry( source, getUserFriendlyTestName( result ), group, rawString );
 
         reportManager.testStarting( report );
     }
 
     public void onTestSuccess( ITestResult result )
     {
-        ReportEntry report = new ReportEntry( source, result.getName(), bundle.getString( "testSuccessful" ) );
+        ReportEntry report =
+            new ReportEntry( source, getUserFriendlyTestName( result ), bundle.getString( "testSuccessful" ) );
         reportManager.testSucceeded( report );
     }
 
@@ -91,15 +91,22 @@
     {
         String rawString = bundle.getString( "executeException" );
 
-        ReportEntry report =
-            new ReportEntry( source, result.getName(), rawString, new TestNGStackTraceWriter( result ) );
+        ReportEntry report = new ReportEntry( source, getUserFriendlyTestName( result ), rawString,
+                                              new TestNGStackTraceWriter( result ) );
 
         reportManager.testFailed( report );
     }
 
+    private static String getUserFriendlyTestName( ITestResult result )
+    {
+        // This is consistent with the JUnit output
+        return result.getName() + "(" + result.getTestClass().getName() + ")";
+    }
+
     public void onTestSkipped( ITestResult result )
     {
-        ReportEntry report = new ReportEntry( source, result.getName(), bundle.getString( "testSkipped" ) );
+        ReportEntry report =
+            new ReportEntry( source, getUserFriendlyTestName( result ), bundle.getString( "testSkipped" ) );
 
         reportManager.testSkipped( report );
     }
@@ -108,8 +115,8 @@
     {
         String rawString = bundle.getString( "executeException" );
 
-        ReportEntry report =
-            new ReportEntry( source, result.getName(), rawString, new TestNGStackTraceWriter( result ) );
+        ReportEntry report = new ReportEntry( source, getUserFriendlyTestName( result ), rawString,
+                                              new TestNGStackTraceWriter( result ) );
 
         reportManager.testError( report );
     }