You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2011/12/05 21:45:52 UTC

svn commit: r1210615 - in /maven/surefire/trunk: maven-surefire-report-plugin/src/site/ src/site/ surefire-api/src/main/java/org/apache/maven/surefire/report/ surefire-api/src/test/java/org/apache/maven/surefire/report/ surefire-integration-tests/src/t...

Author: krosenvold
Date: Mon Dec  5 20:45:51 2011
New Revision: 1210615

URL: http://svn.apache.org/viewvc?rev=1210615&view=rev
Log:
[SUREFIRE-793] JUnit47 provider reports incorrect time in the XML report

Added:
    maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ReporterTime.java   (with props)
Modified:
    maven/surefire/trunk/maven-surefire-report-plugin/src/site/site.xml
    maven/surefire/trunk/src/site/site.xml
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/MulticastingReporter.java
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
    maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/runorder-parallel/pom.xml

Modified: maven/surefire/trunk/maven-surefire-report-plugin/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-report-plugin/src/site/site.xml?rev=1210615&r1=1210614&r2=1210615&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-report-plugin/src/site/site.xml (original)
+++ maven/surefire/trunk/maven-surefire-report-plugin/src/site/site.xml Mon Dec  5 20:45:51 2011
@@ -20,6 +20,12 @@
   -->
 
 <project>
+  <skin>
+    <groupId>org.apache.maven.skins</groupId>
+    <artifactId>maven-fluido-skin</artifactId>
+    <version>1.0</version>
+  </skin>
+
   <body>
     <menu name="Overview">
       <item name="Introduction" href="index.html"/>

Modified: maven/surefire/trunk/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/src/site/site.xml?rev=1210615&r1=1210614&r2=1210615&view=diff
==============================================================================
--- maven/surefire/trunk/src/site/site.xml (original)
+++ maven/surefire/trunk/src/site/site.xml Mon Dec  5 20:45:51 2011
@@ -20,11 +20,10 @@
 -->
 
 <project name="Surefire">
-  <!-- TODO remove when using Maven Parent 11+ -->
   <skin>
     <groupId>org.apache.maven.skins</groupId>
-    <artifactId>maven-stylus-skin</artifactId>
-    <version>1.1</version>
+    <artifactId>maven-fluido-skin</artifactId>
+    <version>1.0</version>
   </skin>
   <body>
     <menu ref="modules"/>

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/MulticastingReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/MulticastingReporter.java?rev=1210615&r1=1210614&r2=1210615&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/MulticastingReporter.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/MulticastingReporter.java Mon Dec  5 20:45:51 2011
@@ -30,8 +30,11 @@ public class MulticastingReporter
     implements Reporter
 {
     private final Reporter[] target;
+
     private final int size;
 
+    private volatile long lastStartAt;
+
     public MulticastingReporter( List target )
     {
         size = target.size();
@@ -40,14 +43,16 @@ public class MulticastingReporter
 
     public void testSetStarting( ReportEntry report )
     {
-        for (int i = 0; i < size; i++){
+        for ( int i = 0; i < size; i++ )
+        {
             target[i].testSetStarting( report );
         }
     }
 
     public void testSetCompleted( ReportEntry report )
     {
-        for (int i = 0; i < size; i++){
+        for ( int i = 0; i < size; i++ )
+        {
             target[i].testSetCompleted( report );
         }
     }
@@ -55,56 +60,80 @@ public class MulticastingReporter
 
     public void testStarting( ReportEntry report )
     {
-        for (int i = 0; i < size; i++){
+        lastStartAt = System.currentTimeMillis();
+        for ( int i = 0; i < size; i++ )
+        {
             target[i].testStarting( report );
         }
     }
 
     public void testSucceeded( ReportEntry report )
     {
-        for (int i = 0; i < size; i++){
-            target[i].testSucceeded( report );
+        ReportEntry wrapped = wrap( report );
+        for ( int i = 0; i < size; i++ )
+        {
+            target[i].testSucceeded( wrapped );
         }
     }
 
     public void testError( ReportEntry report, String stdOut, String stdErr )
     {
-        for (int i = 0; i < size; i++){
-            target[i].testError( report, stdOut, stdErr );
+        ReportEntry wrapped = wrap( report );
+        for ( int i = 0; i < size; i++ )
+        {
+            target[i].testError( wrapped, stdOut, stdErr );
         }
     }
 
     public void testFailed( ReportEntry report, String stdOut, String stdErr )
     {
-        for (int i = 0; i < size; i++){
-            target[i].testFailed( report, stdOut, stdErr );
+        ReportEntry wrapped = wrap( report );
+        for ( int i = 0; i < size; i++ )
+        {
+            target[i].testFailed( wrapped, stdOut, stdErr );
         }
     }
 
     public void testSkipped( ReportEntry report )
     {
-        for (int i = 0; i < size; i++){
-            target[i].testSkipped( report );
+        ReportEntry wrapped = wrap( report );
+        for ( int i = 0; i < size; i++ )
+        {
+            target[i].testSkipped( wrapped );
+        }
+    }
+
+    private ReportEntry wrap( ReportEntry other )
+    {
+        if ( other.getElapsed() != null )
+        {
+            return other;
         }
+        return new CategorizedReportEntry( other.getSourceName(), other.getName(), other.getGroup(),
+                                           other.getStackTraceWriter(), Integer.valueOf(
+            (int) (System.currentTimeMillis() - this.lastStartAt) ));
     }
 
     public void writeMessage( String message )
     {
-        for (int i = 0; i < size; i++){
+        for ( int i = 0; i < size; i++ )
+        {
             target[i].writeMessage( message );
         }
     }
 
     public void writeMessage( byte[] b, int off, int len )
     {
-        for (int i = 0; i < size; i++){
+        for ( int i = 0; i < size; i++ )
+        {
             target[i].writeMessage( b, off, len );
         }
     }
 
     public void reset()
     {
-        for (int i = 0; i < size; i++){
+        for ( int i = 0; i < size; i++ )
+        {
             target[i].reset();
         }
     }

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java?rev=1210615&r1=1210614&r2=1210615&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/XMLReporter.java Mon Dec  5 20:45:51 2011
@@ -56,6 +56,8 @@ public class XMLReporter
 
     private final List results = Collections.synchronizedList( new ArrayList() );
 
+    private int elapsed = 0;
+
 
     public XMLReporter( boolean trimStackTrace, File reportsDirectory )
     {
@@ -97,7 +99,7 @@ public class XMLReporter
     {
         super.testSetCompleted( report );
 
-        long runTime = System.currentTimeMillis() - testSetStartTime;
+        long runTime = elapsed > 0 ? elapsed : (System.currentTimeMillis() - testSetStartTime);
 
         Xpp3Dom testSuite = createTestSuiteElement( report, runTime );
 
@@ -154,7 +156,7 @@ public class XMLReporter
     {
         File reportFile;
 
-        if ( reportNameSuffix != null && reportNameSuffix.length() > 0)
+        if ( reportNameSuffix != null && reportNameSuffix.length() > 0 )
         {
             reportFile = new File( reportsDirectory, "TEST-" + report.getName() + "-" + reportNameSuffix + ".xml" );
         }
@@ -194,6 +196,7 @@ public class XMLReporter
 
     private Xpp3Dom createTestElement( ReportEntry report, long runTime )
     {
+        elapsed += report.getElapsed().intValue();
         Xpp3Dom testCase = new Xpp3Dom( "testcase" );
         testCase.setAttribute( "name", getReportName( report ) );
         if ( report.getGroup() != null )
@@ -202,7 +205,7 @@ public class XMLReporter
         }
         if ( report.getSourceName() != null )
         {
-            if ( reportNameSuffix != null && reportNameSuffix.length() > 0)
+            if ( reportNameSuffix != null && reportNameSuffix.length() > 0 )
             {
                 testCase.setAttribute( "classname", report.getSourceName() + "(" + reportNameSuffix + ")" );
             }
@@ -219,7 +222,7 @@ public class XMLReporter
     {
         Xpp3Dom testCase = new Xpp3Dom( "testsuite" );
 
-        if ( reportNameSuffix != null && reportNameSuffix.length() > 0)
+        if ( reportNameSuffix != null && reportNameSuffix.length() > 0 )
         {
             testCase.setAttribute( "name", getReportName( report ) + "(" + reportNameSuffix + ")" );
         }
@@ -364,6 +367,7 @@ public class XMLReporter
     public void reset()
     {
         results.clear();
+        elapsed = 0;
         super.reset();
     }
 }

Modified: maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java?rev=1210615&r1=1210614&r2=1210615&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java (original)
+++ maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/report/XMLReporterTest.java Mon Dec  5 20:45:51 2011
@@ -42,7 +42,8 @@ public class XMLReporterTest
         reporter = new XMLReporter( true, new File( "." ));
         message = "junit.framework.AssertionFailedError";
         reportEntry = new SimpleReportEntry( this.getClass().getName(), "XMLReporterTest",
-                                             new PojoStackTraceWriter( "", "", new AssertionFailedError() ) );
+                                             new PojoStackTraceWriter( "", "", new AssertionFailedError() ) ,
+                                             new Integer( 17 ) );
     }
 
     /*
@@ -77,7 +78,7 @@ public class XMLReporterTest
     {
         File reportDir = new File( "." );
         String testName = "org.apache.maven.surefire.report.XMLReporterTest";
-        reportEntry = new SimpleReportEntry( this.getClass().getName(), testName );
+        reportEntry = new SimpleReportEntry( this.getClass().getName(), testName, new Integer( 12) );
         reporter = new XMLReporter( true, reportDir, null );
         reporter.testSetCompleted( reportEntry );
 

Added: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ReporterTime.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ReporterTime.java?rev=1210615&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ReporterTime.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ReporterTime.java Mon Dec  5 20:45:51 2011
@@ -0,0 +1,8 @@
+package org.apache.maven.surefire.its;
+
+/**
+ * @author Kristian Rosenvold
+ */
+public class ReporterTime
+{
+}

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ReporterTime.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/resources/runorder-parallel/pom.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/runorder-parallel/pom.xml?rev=1210615&r1=1210614&r2=1210615&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/runorder-parallel/pom.xml (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/runorder-parallel/pom.xml Mon Dec  5 20:45:51 2011
@@ -35,7 +35,6 @@
            <version>${surefire.version}</version>
            <configuration>
              <forkMode>once</forkMode>
-             <parallel>classes</parallel>
              <runOrder>${runOrder}</runOrder>
              <threadCount>2</threadCount>
              <perCoreThreadCount>false</perCoreThreadCount>