You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ag...@apache.org on 2014/10/19 19:43:36 UTC

git commit: [SUREFIRE-1088] alternative fix for handling of @Ignored test cases (the better-safe-than-sorry way)

Repository: maven-surefire
Updated Branches:
  refs/heads/master 40b4b48a3 -> 5291f3ae6


[SUREFIRE-1088] alternative fix for handling of @Ignored test cases (the better-safe-than-sorry way)


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/5291f3ae
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/5291f3ae
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/5291f3ae

Branch: refs/heads/master
Commit: 5291f3ae6855bf335598f0147b67c4806c88e6fc
Parents: 40b4b48
Author: Andreas Gudian <ag...@apache.org>
Authored: Sun Oct 19 19:43:22 2014 +0200
Committer: Andreas Gudian <ag...@apache.org>
Committed: Sun Oct 19 19:43:22 2014 +0200

----------------------------------------------------------------------
 .../surefire/report/TestSetRunListener.java     | 44 +++++++++++---------
 1 file changed, 24 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/5291f3ae/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
----------------------------------------------------------------------
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
index 35b923c..701069f 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
@@ -41,7 +41,7 @@ public class TestSetRunListener
 {
     private final TestSetStats detailsForThis;
 
-    private ReportEntry lastSkipped;
+    private ReportEntry lastMarkedAsCompleteAfterSkipped;
 
     private List<TestMethodStats> testMethodStats;
 
@@ -112,8 +112,6 @@ public class TestSetRunListener
 
     public void testSetStarting( ReportEntry report )
     {
-        checkForUnfinishedTestSetDueToSkip( report );
-
         detailsForThis.testSetStart();
         if ( consoleReporter != null )
         {
@@ -130,7 +128,11 @@ public class TestSetRunListener
 
     public void testSetCompleted( ReportEntry report )
     {
-        clearLastSkipMarker();
+        if ( wasMarkedAsCompleteAfterSkipped( report ) )
+        {
+            lastMarkedAsCompleteAfterSkipped = null;
+            return;
+        }
 
         WrappedReportEntry wrap = wrapTestSet( report );
         List<String> testResults = briefOrPlainFormat ? detailsForThis.getTestResults() : null;
@@ -164,6 +166,13 @@ public class TestSetRunListener
 
     }
 
+    private boolean wasMarkedAsCompleteAfterSkipped( ReportEntry report )
+    {
+        return null != lastMarkedAsCompleteAfterSkipped
+            && StringUtils.equals( lastMarkedAsCompleteAfterSkipped.getName(), report.getName() )
+            && StringUtils.equals( lastMarkedAsCompleteAfterSkipped.getSourceName(), report.getSourceName() );
+    }
+
     // ----------------------------------------------------------------------
     // Test
     // ----------------------------------------------------------------------
@@ -187,8 +196,6 @@ public class TestSetRunListener
 
     public void testError( ReportEntry reportEntry )
     {
-        checkForUnfinishedTestSetDueToSkip( reportEntry );
-
         WrappedReportEntry wrapped = wrap( reportEntry, ReportEntryType.error );
         detailsForThis.testError( wrapped );
         if ( statisticsReporter != null )
@@ -200,8 +207,6 @@ public class TestSetRunListener
 
     public void testFailed( ReportEntry reportEntry )
     {
-        checkForUnfinishedTestSetDueToSkip( reportEntry );
-
         WrappedReportEntry wrapped = wrap( reportEntry, ReportEntryType.failure );
         detailsForThis.testFailure( wrapped );
         if ( statisticsReporter != null )
@@ -217,10 +222,6 @@ public class TestSetRunListener
 
     public void testSkipped( ReportEntry reportEntry )
     {
-        checkForUnfinishedTestSetDueToSkip( reportEntry );
-
-        lastSkipped = reportEntry;
-
         WrappedReportEntry wrapped = wrap( reportEntry, ReportEntryType.skipped );
 
         detailsForThis.testSkipped( wrapped );
@@ -229,20 +230,23 @@ public class TestSetRunListener
             statisticsReporter.testSkipped( reportEntry );
         }
         clearCapture();
-    }
 
-    private void checkForUnfinishedTestSetDueToSkip( ReportEntry reportEntry )
-    {
-        if ( lastSkipped != null && !StringUtils.equals( lastSkipped.getSourceName(), reportEntry.getSourceName() ) )
+        if ( looksLikeIgnoredTestSet( reportEntry ) )
         {
-            // a new test class was started to be processed, but a skipped test class was not yet marked as completed
-            testSetCompleted( lastSkipped );
+            // if a class is marked as @Ignored, the testSetCompleted method is not always called by the test provider,
+            // so we do that here.
+            testSetCompleted( reportEntry );
+            lastMarkedAsCompleteAfterSkipped = reportEntry;
         }
     }
 
-    private void clearLastSkipMarker()
+    /**
+     * @param reportEntry the report entry to check
+     * @return {@code true}, if the report entry looks like it belongs to an ignored test class
+     */
+    private boolean looksLikeIgnoredTestSet( ReportEntry reportEntry )
     {
-        lastSkipped = null;
+        return StringUtils.equals( reportEntry.getName(), reportEntry.getSourceName() );
     }
 
     public void testAssumptionFailure( ReportEntry report )