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 )