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/19 16:30:03 UTC
svn commit: r1203992 - in /maven/surefire/trunk:
surefire-api/src/main/java/org/apache/maven/surefire/booter/
surefire-api/src/main/java/org/apache/maven/surefire/providerapi/
surefire-api/src/main/java/org/apache/maven/surefire/util/
surefire-api/src/...
Author: krosenvold
Date: Sat Nov 19 15:30:02 2011
New Revision: 1203992
URL: http://svn.apache.org/viewvc?rev=1203992&view=rev
Log:
o Extracted run-order calulation into seperate service
In preparation of funky things to come
Added:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java (with props)
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/RunOrderCalculator.java (with props)
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java (with props)
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/BaseProviderFactory.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/ProviderParameters.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/SurefireDirectoryScannerTest.java
maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.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/JUnitCoreProvider.java
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/BaseProviderFactory.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/BaseProviderFactory.java?rev=1203992&r1=1203991&r2=1203992&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/BaseProviderFactory.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/BaseProviderFactory.java Sat Nov 19 15:30:02 2011
@@ -30,7 +30,9 @@ import org.apache.maven.surefire.testset
import org.apache.maven.surefire.testset.TestArtifactInfo;
import org.apache.maven.surefire.testset.TestRequest;
import org.apache.maven.surefire.util.DefaultDirectoryScanner;
+import org.apache.maven.surefire.util.DefaultRunOrderCalculator;
import org.apache.maven.surefire.util.DirectoryScanner;
+import org.apache.maven.surefire.util.RunOrderCalculator;
/**
* @author Kristian Rosenvold
@@ -39,6 +41,7 @@ public class BaseProviderFactory
implements DirectoryScannerParametersAware, ReporterConfigurationAware, SurefireClassLoadersAware, TestRequestAware,
ProviderPropertiesAware, ProviderParameters, TestArtifactInfoAware
{
+
private Properties providerProperties;
private DirectoryScannerParameters directoryScannerParameters;
@@ -69,8 +72,16 @@ public class BaseProviderFactory
}
return new DefaultDirectoryScanner( directoryScannerParameters.getTestClassesDirectory(),
directoryScannerParameters.getIncludes(),
- directoryScannerParameters.getExcludes(),
- directoryScannerParameters.getRunOrder() );
+ directoryScannerParameters.getExcludes() );
+ }
+
+ public RunOrderCalculator getRunOrderCalculator()
+ {
+ if ( directoryScannerParameters == null )
+ {
+ return null;
+ }
+ return new DefaultRunOrderCalculator( directoryScannerParameters.getRunOrder() );
}
public ReporterFactory getReporterFactory()
Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/ProviderParameters.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/ProviderParameters.java?rev=1203992&r1=1203991&r2=1203992&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/ProviderParameters.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/ProviderParameters.java Sat Nov 19 15:30:02 2011
@@ -27,6 +27,7 @@ import org.apache.maven.surefire.testset
import org.apache.maven.surefire.testset.TestArtifactInfo;
import org.apache.maven.surefire.testset.TestRequest;
import org.apache.maven.surefire.util.DirectoryScanner;
+import org.apache.maven.surefire.util.RunOrderCalculator;
/**
* Injected into the providers upon provider construction. Allows the provider to request services and data it needs.
@@ -49,6 +50,12 @@ public interface ProviderParameters
DirectoryScanner getDirectoryScanner();
/**
+ * Provides a service to calculate run order of tests. Applied after directory scanning.
+ * @return A RunOrderCalculator
+ */
+ RunOrderCalculator getRunOrderCalculator();
+
+ /**
* Provides features for creating reporting objects
*
* @return A ReporterFactory that allows the creation of one or more ReporterManagers
Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java?rev=1203992&r1=1203991&r2=1203992&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java Sat Nov 19 15:30:02 2011
@@ -21,9 +21,6 @@ package org.apache.maven.surefire.util;
import java.io.File;
import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
@@ -53,17 +50,11 @@ public class DefaultDirectoryScanner
private final List classesSkippedByValidation = new ArrayList();
- private final Comparator sortOrder;
-
- private final RunOrder runOrder;
-
- public DefaultDirectoryScanner( File basedir, List includes, List excludes, RunOrder runOrder )
+ public DefaultDirectoryScanner( File basedir, List includes, List excludes )
{
this.basedir = basedir;
this.includes = includes;
this.excludes = excludes;
- this.runOrder = runOrder;
- this.sortOrder = getSortOrderComparator();
}
public TestsToRun locateTestClasses( ClassLoader classLoader, ScannerFilter scannerFilter )
@@ -86,7 +77,6 @@ public class DefaultDirectoryScanner
classesSkippedByValidation.add( testClass );
}
}
- orderTestClasses( result );
return new TestsToRun( result );
}
@@ -173,59 +163,4 @@ public class DefaultDirectoryScanner
return classesSkippedByValidation;
}
- private void orderTestClasses( List testClasses )
- {
- if ( RunOrder.RANDOM.equals( runOrder ) )
- {
- Collections.shuffle( testClasses );
- }
- else if ( sortOrder != null )
- {
- Collections.sort( testClasses, sortOrder );
- }
- }
-
- private Comparator getSortOrderComparator()
- {
- if ( RunOrder.ALPHABETICAL.equals( runOrder ) )
- {
- return getAlphabeticalComparator();
- }
- else if ( RunOrder.REVERSE_ALPHABETICAL.equals( runOrder ) )
- {
- return getReverseAlphabeticalComparator();
- }
- else if ( RunOrder.HOURLY.equals( runOrder ) )
- {
- final int hour = Calendar.getInstance().get( Calendar.HOUR_OF_DAY );
- return ( ( hour % 2 ) == 0 ) ? getAlphabeticalComparator() : getReverseAlphabeticalComparator();
- }
- else
- {
- return null;
- }
- }
-
- private Comparator getReverseAlphabeticalComparator()
- {
- return new Comparator()
- {
- public int compare( Object o1, Object o2 )
- {
- return ( (Class) o2 ).getName().compareTo( ( (Class) o1 ).getName() );
- }
- };
- }
-
- private Comparator getAlphabeticalComparator()
- {
- return new Comparator()
- {
- public int compare( Object o1, Object o2 )
- {
- return ( (Class) o1 ).getName().compareTo( ( (Class) o2 ).getName() );
- }
- };
- }
-
}
Added: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java?rev=1203992&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java (added)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java Sat Nov 19 15:30:02 2011
@@ -0,0 +1,109 @@
+package org.apache.maven.surefire.util;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+/**
+ * Applies the final unorder of the tests
+ *
+ * @author Kristian Rosenvold
+ */
+public class DefaultRunOrderCalculator
+ implements RunOrderCalculator
+{
+ private final Comparator sortOrder;
+
+ private final RunOrder runOrder;
+
+ public DefaultRunOrderCalculator( RunOrder runOrder )
+ {
+ this.runOrder = runOrder;
+ this.sortOrder = getSortOrderComparator();
+ }
+
+ public TestsToRun orderTestClasses( TestsToRun scannedClasses ){
+ List result = new ArrayList(Arrays.asList(scannedClasses.getLocatedClasses()));
+ orderTestClasses(result);
+ return new TestsToRun( result );
+
+ }
+
+ private void orderTestClasses( List testClasses )
+ {
+ if ( RunOrder.RANDOM.equals( runOrder ) )
+ {
+ Collections.shuffle( testClasses );
+ }
+ else if ( sortOrder != null )
+ {
+ Collections.sort( testClasses, sortOrder );
+ }
+ }
+
+ private Comparator getSortOrderComparator()
+ {
+ if ( RunOrder.ALPHABETICAL.equals( runOrder ) )
+ {
+ return getAlphabeticalComparator();
+ }
+ else if ( RunOrder.REVERSE_ALPHABETICAL.equals( runOrder ) )
+ {
+ return getReverseAlphabeticalComparator();
+ }
+ else if ( RunOrder.HOURLY.equals( runOrder ) )
+ {
+ final int hour = Calendar.getInstance().get( Calendar.HOUR_OF_DAY );
+ return ( ( hour % 2 ) == 0 ) ? getAlphabeticalComparator() : getReverseAlphabeticalComparator();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ private Comparator getReverseAlphabeticalComparator()
+ {
+ return new Comparator()
+ {
+ public int compare( Object o1, Object o2 )
+ {
+ return ( (Class) o2 ).getName().compareTo( ( (Class) o1 ).getName() );
+ }
+ };
+ }
+
+ private Comparator getAlphabeticalComparator()
+ {
+ return new Comparator()
+ {
+ public int compare( Object o1, Object o2 )
+ {
+ return ( (Class) o1 ).getName().compareTo( ( (Class) o2 ).getName() );
+ }
+ };
+ }
+
+}
Propchange: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/RunOrderCalculator.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/RunOrderCalculator.java?rev=1203992&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/RunOrderCalculator.java (added)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/RunOrderCalculator.java Sat Nov 19 15:30:02 2011
@@ -0,0 +1,29 @@
+package org.apache.maven.surefire.util;
+
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author Kristian Rosenvold
+ */
+public interface RunOrderCalculator
+{
+ TestsToRun orderTestClasses( TestsToRun scannedClasses );
+}
Propchange: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/RunOrderCalculator.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java?rev=1203992&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java (added)
+++ maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java Sat Nov 19 15:30:02 2011
@@ -0,0 +1,38 @@
+package org.apache.maven.surefire.util;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Kristian Rosenvold
+ */
+public class RunOrderCalculatorTest extends TestCase {
+
+ public void testOrderTestClasses() throws Exception {
+ getClassesToRun();
+ TestsToRun testsToRun = new TestsToRun(getClassesToRun());
+ RunOrderCalculator runOrderCalculator = new DefaultRunOrderCalculator(RunOrder.ALPHABETICAL);
+ final TestsToRun testsToRun1 = runOrderCalculator.orderTestClasses(testsToRun);
+ assertEquals( A.class, testsToRun1.iterator().next());
+
+ }
+
+ private List getClassesToRun() {
+ List classesToRun = new ArrayList();
+ classesToRun.add( B.class);
+ classesToRun.add( A.class);
+ return classesToRun;
+ }
+
+ class A {
+
+ }
+
+ class B {
+
+ }
+
+
+}
Propchange: maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/SurefireDirectoryScannerTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/SurefireDirectoryScannerTest.java?rev=1203992&r1=1203991&r2=1203992&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/SurefireDirectoryScannerTest.java (original)
+++ maven/surefire/trunk/surefire-api/src/test/java/org/apache/maven/surefire/util/SurefireDirectoryScannerTest.java Sat Nov 19 15:30:02 2011
@@ -43,8 +43,7 @@ public class SurefireDirectoryScannerTes
include.add( "**/*ZT*A.java" );
List exclude = new ArrayList();
- DefaultDirectoryScanner surefireDirectoryScanner = new DefaultDirectoryScanner( baseDir, include, exclude,
- RunOrder.FILESYSTEM );
+ DefaultDirectoryScanner surefireDirectoryScanner = new DefaultDirectoryScanner( baseDir, include, exclude );
String[] classNames = surefireDirectoryScanner.collectTests();
assertNotNull( classNames );
System.out.println("classNames " + Arrays.asList( classNames ));
Modified: maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java?rev=1203992&r1=1203991&r2=1203992&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java Sat Nov 19 15:30:02 2011
@@ -35,6 +35,7 @@ import org.apache.maven.surefire.suite.R
import org.apache.maven.surefire.testset.TestSetFailedException;
import org.apache.maven.surefire.util.DirectoryScanner;
import org.apache.maven.surefire.util.ReflectionUtils;
+import org.apache.maven.surefire.util.RunOrderCalculator;
import org.apache.maven.surefire.util.TestsToRun;
/**
@@ -55,13 +56,16 @@ public class JUnit3Provider
private final ProviderParameters providerParameters;
+ private final RunOrderCalculator runOrderCalculator;
+
private TestsToRun testsToRun;
- public JUnit3Provider( ProviderParameters booterParameters )
+ public JUnit3Provider( ProviderParameters booterParameters )
{
this.providerParameters = booterParameters;
this.testClassLoader = booterParameters.getTestClassLoader();
this.directoryScanner = booterParameters.getDirectoryScanner();
+ this.runOrderCalculator = booterParameters.getRunOrderCalculator();
this.reflector = new JUnit3Reflector( testClassLoader );
jUnit3TestChecker = new JUnit3TestChecker( testClassLoader );
this.testChecker = new PojoAndJUnit3Checker( jUnit3TestChecker ); // Todo; use reflector
@@ -121,7 +125,8 @@ public class JUnit3Provider
private TestsToRun scanClassPath()
{
- return directoryScanner.locateTestClasses( testClassLoader, testChecker );
+ final TestsToRun scanResult = directoryScanner.locateTestClasses( testClassLoader, testChecker );
+ return runOrderCalculator.orderTestClasses( scanResult );
}
public Iterator getSuites()
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=1203992&r1=1203991&r2=1203992&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 Sat Nov 19 15:30:02 2011
@@ -38,6 +38,7 @@ import org.apache.maven.surefire.suite.R
import org.apache.maven.surefire.testset.TestSetFailedException;
import org.apache.maven.surefire.util.DefaultDirectoryScanner;
import org.apache.maven.surefire.util.DirectoryScanner;
+import org.apache.maven.surefire.util.RunOrderCalculator;
import org.apache.maven.surefire.util.TestsToRun;
import org.junit.runner.Result;
@@ -63,11 +64,15 @@ public class JUnit4Provider
private final ProviderParameters providerParameters;
+ private final RunOrderCalculator runOrderCalculator;
+
+
public JUnit4Provider( ProviderParameters booterParameters )
{
this.providerParameters = booterParameters;
this.testClassLoader = booterParameters.getTestClassLoader();
this.directoryScanner = booterParameters.getDirectoryScanner();
+ this.runOrderCalculator = booterParameters.getRunOrderCalculator();
customRunListeners = JUnit4RunListenerFactory.
createCustomListeners( booterParameters.getProviderProperties().getProperty( "listener" ) );
jUnit4TestChecker = new JUnit4TestChecker( testClassLoader );
@@ -171,7 +176,8 @@ public class JUnit4Provider
private TestsToRun scanClassPath()
{
- return directoryScanner.locateTestClasses( testClassLoader, jUnit4TestChecker );
+ final TestsToRun scannedClasses = directoryScanner.locateTestClasses( testClassLoader, jUnit4TestChecker );
+ return runOrderCalculator.orderTestClasses( scannedClasses );
}
private void upgradeCheck()
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=1203992&r1=1203991&r2=1203992&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 Sat Nov 19 15:30:02 2011
@@ -40,6 +40,7 @@ import org.apache.maven.surefire.report.
import org.apache.maven.surefire.suite.RunResult;
import org.apache.maven.surefire.testset.TestSetFailedException;
import org.apache.maven.surefire.util.DirectoryScanner;
+import org.apache.maven.surefire.util.RunOrderCalculator;
import org.apache.maven.surefire.util.ScannerFilter;
import org.apache.maven.surefire.util.TestsToRun;
@@ -65,15 +66,20 @@ public class JUnitCoreProvider
private final ProviderParameters providerParameters;
+
+
private TestsToRun testsToRun;
private JUnit48Reflector jUnit48Reflector;
+ private RunOrderCalculator runOrderCalculator;
+
public JUnitCoreProvider( ProviderParameters providerParameters )
{
this.providerParameters = providerParameters;
this.testClassLoader = providerParameters.getTestClassLoader();
this.directoryScanner = providerParameters.getDirectoryScanner();
+ this.runOrderCalculator = providerParameters.getRunOrderCalculator();
this.jUnitCoreParameters = new JUnitCoreParameters( providerParameters.getProviderProperties() );
this.scannerFilter = new JUnit4TestChecker( testClassLoader );
customRunListeners = JUnit4RunListenerFactory.
@@ -168,6 +174,7 @@ public class JUnitCoreProvider
private TestsToRun scanClassPath()
{
- return directoryScanner.locateTestClasses( testClassLoader, scannerFilter );
+ final TestsToRun scanned = directoryScanner.locateTestClasses( testClassLoader, scannerFilter );
+ return runOrderCalculator.orderTestClasses( scanned );
}
}
Modified: maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java?rev=1203992&r1=1203991&r2=1203992&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java Sat Nov 19 15:30:02 2011
@@ -42,8 +42,10 @@ import org.apache.maven.surefire.report.
import org.apache.maven.surefire.report.SimpleReportEntry;
import org.apache.maven.surefire.testset.TestSetFailedException;
import org.apache.maven.surefire.util.DefaultDirectoryScanner;
+import org.apache.maven.surefire.util.DefaultRunOrderCalculator;
import org.apache.maven.surefire.util.DirectoryScanner;
import org.apache.maven.surefire.util.RunOrder;
+import org.apache.maven.surefire.util.RunOrderCalculator;
import org.apache.maven.surefire.util.TestsToRun;
/**
@@ -69,12 +71,15 @@ public class TestNGDirectoryTestSuite
private final String testMethodPattern;
+ private final RunOrderCalculator runOrderCalculator;
+
public TestNGDirectoryTestSuite( File basedir, ArrayList includes, ArrayList excludes, String testSourceDirectory,
String artifactVersion, Properties confOptions, File reportsDirectory,
String testMethodPattern )
{
- this.surefireDirectoryScanner = new DefaultDirectoryScanner( basedir, includes, excludes, RunOrder.FILESYSTEM );
+ this.surefireDirectoryScanner = new DefaultDirectoryScanner( basedir, includes, excludes );
+ this.runOrderCalculator = new DefaultRunOrderCalculator( RunOrder.FILESYSTEM );
this.options = confOptions;
@@ -265,8 +270,10 @@ public class TestNGDirectoryTestSuite
}
testSets = new TreeMap();
- final TestsToRun testsToRun =
+ final TestsToRun scanned =
surefireDirectoryScanner.locateTestClasses( classLoader, new NonAbstractClassFilter() );
+
+ final TestsToRun testsToRun = runOrderCalculator.orderTestClasses( scanned );
Class[] locatedClasses = testsToRun.getLocatedClasses();
for ( int i = 0; i < locatedClasses.length; i++ )
Modified: maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java?rev=1203992&r1=1203991&r2=1203992&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java Sat Nov 19 15:30:02 2011
@@ -35,6 +35,7 @@ import org.apache.maven.surefire.testset
import org.apache.maven.surefire.testset.TestSetFailedException;
import org.apache.maven.surefire.util.DirectoryScanner;
import org.apache.maven.surefire.util.NestedRuntimeException;
+import org.apache.maven.surefire.util.RunOrderCalculator;
import org.apache.maven.surefire.util.TestsToRun;
/**
@@ -64,11 +65,14 @@ public class TestNGProvider
private final File basedir;
+ private final RunOrderCalculator runOrderCalculator;
+
public TestNGProvider( ProviderParameters booterParameters )
{
this.providerParameters = booterParameters;
this.testClassLoader = booterParameters.getTestClassLoader();
this.directoryScannerParameters = booterParameters.getDirectoryScannerParameters();
+ this.runOrderCalculator = booterParameters.getRunOrderCalculator();
this.providerProperties = booterParameters.getProviderProperties();
this.testRequest = booterParameters.getTestRequest();
basedir = directoryScannerParameters != null ? directoryScannerParameters.getTestClassesDirectory() : null;
@@ -162,7 +166,8 @@ public class TestNGProvider
private TestsToRun scanClassPath()
{
- return directoryScanner.locateTestClasses( testClassLoader, null );
+ final TestsToRun scanned = directoryScanner.locateTestClasses( testClassLoader, null );
+ return runOrderCalculator.orderTestClasses( scanned );
}