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/11/10 21:52:07 UTC

svn commit: r1200541 - in /maven/surefire/trunk: maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/ surefire-providers/surefire-junit47/src/main/jav...

Author: krosenvold
Date: Thu Nov 10 20:52:07 2011
New Revision: 1200541

URL: http://svn.apache.org/viewvc?rev=1200541&view=rev
Log:
[SUREFIRE-786] @Category not taken into account for forkMode=always

Testcase and initial patch by nkeywal. Extended fix to cover method-level
categories in 'always' forks too.

This also fixes a quite serious issue of custom provider properties
not making it into the provider upon forkMode=always, which
should close quite a few other issues too

Modified:
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
    maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java
    maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java?rev=1200541&r1=1200540&r2=1200541&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java Thu Nov 10 20:52:07 2011
@@ -99,7 +99,7 @@ public class ForkStarter
             }
             else if ( ForkConfiguration.FORK_ALWAYS.equals( requestedForkMode ) )
             {
-                result = runSuitesForkPerTestSet( fileReporterFactory );
+                result = runSuitesForkPerTestSet( fileReporterFactory, providerConfiguration.getProviderProperties() );
             }
             else
             {
@@ -113,15 +113,13 @@ public class ForkStarter
         return result;
     }
 
-    private RunResult runSuitesForkPerTestSet( FileReporterFactory fileReporterFactory )
+    private RunResult runSuitesForkPerTestSet( FileReporterFactory fileReporterFactory, Properties properties )
         throws SurefireBooterForkException
     {
         RunResult globalResult = new RunResult( 0, 0, 0, 0 );
 
         final Iterator suites = getSuitesIterator();
 
-        Properties properties = new Properties();
-
         while ( suites.hasNext() )
         {
             Object testSet = suites.next();

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java?rev=1200541&r1=1200540&r2=1200541&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java Thu Nov 10 20:52:07 2011
@@ -19,6 +19,8 @@ package org.apache.maven.surefire.its;
  */
 
 
+import org.apache.maven.it.VerificationException;
+
 /**
  * Test project using "groups" support
  *
@@ -35,6 +37,19 @@ public class JUnit48TestCategoriesIT
     public void testCategoriesAB()
         throws Exception
     {
+        runAB();
+    }
+
+    public void testCategoriesABForkAlways()
+        throws Exception
+    {
+        forkAlways();
+        runAB();
+    }
+
+    private void runAB()
+        throws VerificationException
+    {
         executeTest();
         verifyErrorFreeLog();
         assertTestSuiteResults( 2, 0, 0, 0 );
@@ -47,6 +62,20 @@ public class JUnit48TestCategoriesIT
     public void testCategoriesAC()
         throws Exception
     {
+        runAC();
+    }
+
+    public void testCategoriesACForkAlways()
+        throws Exception
+    {
+        forkAlways();
+        runAC();
+    }
+
+
+    private void runAC()
+        throws Exception
+    {
         addGoal( "-Dgroups=junit4.CategoryA,junit4.CategoryC" );
         executeTest();
         verifyErrorFreeLog();
@@ -60,4 +89,5 @@ public class JUnit48TestCategoriesIT
         verifyTextInLog("mC: 1");
         verifyTextInLog("CatNone: 1");
     }
+
 }

Modified: maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java?rev=1200541&r1=1200540&r2=1200541&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java Thu Nov 10 20:52:07 2011
@@ -87,7 +87,8 @@ public class JUnitCoreProvider
 
     public Iterator getSuites()
     {
-        testsToRun = scanClassPath();
+        final Filter filter = jUnit48Reflector.isJUnit48Available() ? createJUnit48Filter() : null;
+        testsToRun = getSuitesAsList( filter );
         return testsToRun.iterator();
     }
 
@@ -127,13 +128,17 @@ public class JUnitCoreProvider
     {
         List<Class<?>> res = new ArrayList<Class<?>>( 500 );
         TestsToRun max = scanClassPath();
+        if (filter == null){
+            return max;
+        }
+
         Iterator<Class<?>> it = max.iterator();
         while ( it.hasNext() )
         {
             Class<?> clazz = it.next();
             boolean isCategoryAnnotatedClass = jUnit48Reflector.isCategoryAnnotationPresent( clazz);
             Description d = Description.createSuiteDescription( clazz );
-            if ( !isCategoryAnnotatedClass || filter == null || filter.shouldRun( d ) )
+            if ( !isCategoryAnnotatedClass || filter.shouldRun( d ) )
             {
                 res.add( clazz );
             }