Author: krosenvold
Date: Mon Jan 16 06:51:14 2012
New Revision: 1231848
URL: http://svn.apache.org/viewvc?rev=1231848&view=rev
Log:
o Ensured JUnit4 and JUnit47 uses same mechanism to detect test mechanism
failures
Modified:
maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
Modified:
maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java?rev=1231848&r1=1231847&r2=1231848&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java
(original)
+++
maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListener.java
Mon Jan 16 06:51:14 2012
@@ -24,17 +24,21 @@ import java.util.regex.Pattern;
import org.apache.maven.surefire.report.ReportEntry;
import org.apache.maven.surefire.report.RunListener;
import org.apache.maven.surefire.report.SimpleReportEntry;
+import org.apache.maven.surefire.testset.TestSetFailedException;
import org.junit.runner.Description;
+import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class JUnit4RunListener
extends org.junit.runner.notification.RunListener
{
private static final Pattern PARENS = Pattern.compile( "^" + "[^\\(\\)]+"
//non-parens
- + "\\((" //
then an open-paren (start matching a group)
+ + "\\(("
+ // then an
open-paren (start matching a group)
+
"[^\\\\(\\\\)]+" //non-parens
- + ")\\)" + "$"
); // then a close-paren (end group match)
+ + ")\\)" + "$"
);
+ // then a close-paren (end group match)
protected final RunListener reporter;
@@ -88,9 +92,9 @@ public class JUnit4RunListener
public void testFailure( Failure failure )
throws Exception
{
- ReportEntry report =
- new SimpleReportEntry( extractClassName( failure.getDescription()
), failure.getTestHeader(),
- new JUnit4StackTraceWriter( failure ) );
+ ReportEntry report = new SimpleReportEntry( extractClassName(
failure.getDescription() ),
+ failure.getTestHeader(),
+ new
JUnit4StackTraceWriter( failure ) );
if ( failure.getException() instanceof AssertionError )
{
@@ -128,7 +132,8 @@ public class JUnit4RunListener
private SimpleReportEntry createReportEntry( Description description )
{
- return new SimpleReportEntry( extractClassName( description ),
description.getDisplayName() );
+ return new SimpleReportEntry( extractClassName( description ),
+ description.getDisplayName() );
}
@@ -142,4 +147,26 @@ public class JUnit4RunListener
}
return m.group( 1 );
}
+
+
+ public static void rethrowAnyTestMechanismFailures( Result run )
+ throws TestSetFailedException
+ {
+ if ( run.getFailureCount() > 0 )
+ {
+ for ( Failure failure : run.getFailures() )
+ {
+ if ( isFailureInsideJUnitItself( failure ) )
+ {
+ final Throwable exception = failure.getException();
+ throw new TestSetFailedException( exception );
+ }
+ }
+ }
+ }
+
+ private static boolean isFailureInsideJUnitItself( Failure failure )
+ {
+ return failure.getDescription().getDisplayName().equals( "Test
mechanism" );
+ }
}
Modified:
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java?rev=1231848&r1=1231847&r2=1231848&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
Mon Jan 16 06:51:14 2012
@@ -116,6 +116,8 @@ public class JUnit4Provider
runNotifer.fireTestRunFinished( result );
+ JUnit4RunListener.rethrowAnyTestMechanismFailures( result );
+
closeRunNotifer( jUnit4TestSetReporter, customRunListeners );
return reporterFactory.close();
Modified:
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java?rev=1231848&r1=1231847&r2=1231848&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
Mon Jan 16 06:51:14 2012
@@ -21,6 +21,7 @@ package org.apache.maven.surefire.junitc
import java.util.List;
import java.util.concurrent.ExecutionException;
+import org.apache.maven.surefire.common.junit4.JUnit4RunListener;
import org.apache.maven.surefire.testset.TestSetFailedException;
import org.apache.maven.surefire.util.TestsToRun;
@@ -29,7 +30,6 @@ import org.junit.runner.JUnitCore;
import org.junit.runner.Request;
import org.junit.runner.Result;
import org.junit.runner.manipulation.Filter;
-import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunListener;
/**
@@ -60,18 +60,7 @@ class JUnitCoreWrapper
try
{
final Result run = junitCore.run( req );
-
- if ( run.getFailureCount() > 0 )
- {
- for ( Failure failure : run.getFailures() )
- {
- if ( isFailureInsideJUnitItself( failure ) )
- {
- final Throwable exception = failure.getException();
- throw new TestSetFailedException( exception );
- }
- }
- }
+ JUnit4RunListener.rethrowAnyTestMechanismFailures( run );
}
finally
{
@@ -83,11 +72,6 @@ class JUnitCoreWrapper
}
}
- private static boolean isFailureInsideJUnitItself( Failure failure )
- {
- return failure.getDescription().getDisplayName().equals( "Test
mechanism" );
- }
-
private static void closeIfConfigurable( Computer computer )
throws TestSetFailedException
{