Author: krosenvold
Date: Thu Nov 11 11:39:26 2010
New Revision: 1033896
URL: http://svn.apache.org/viewvc?rev=1033896&view=rev
Log:
[SUREFIRE-482] Surefire now only runs correct junit tests
Run with -Dsurefire.junit4.upgradecheck=true at least once when upgrading
Added:
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
(with props)
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4TestCheckerTest.java
(with props)
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/Surefire.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/SurefireTestSuite.java
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitDirectoryTestSuite.java
maven/surefire/trunk/surefire-providers/surefire-junit4/pom.xml
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4DirectoryTestSuite.java
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGXmlTestSuite.java
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/Surefire.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/Surefire.java?rev=1033896&r1=1033895&r2=1033896&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/Surefire.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/Surefire.java
Thu Nov 11 11:39:26 2010
@@ -193,9 +193,38 @@ public class Surefire
suite.locateTestSets( testsClassLoader );
+ // Todo: Make this not ugly OR just leave it here as a transitional
feature for a few versions
+ // I will move this into the JUnit4DirectoryTestSuite when fixing
SUREFIRE-141 RSN
+ // SUREFIRE-141 will require loosening the relationship between
surefire and the providers,
+ // which is basically way too constrained and locked into a design
that is only correct for
+ // junit3 with the AbstractDirectoryTestSuite.
+ // This same constraint is making it hard to put this code in the
proper place.
+ if (isJunit4UpgradeCheck() &&
suite.getClassesSkippedByValidation().size() > 0 &&
+ suite.getClass().getName().equals(
"org.apache.maven.surefire.junit4.JUnit4DirectoryTestSuite" )){
+
+ StringBuilder reason = new StringBuilder( );
+ reason.append( "Updated check failed\n" );
+ reason.append( "There are tests that would be run with junit4 /
surefire 2.6 but not with [2.7,):\n" );
+ for ( Iterator i =
suite.getClassesSkippedByValidation().iterator(); i.hasNext(); )
+ {
+ Class testClass = (Class) i.next();
+ reason.append(" ");
+ reason.append( testClass.getCanonicalName() );
+ reason.append("\n");
+ }
+ throw new TestSetFailedException(reason.toString());
+ }
+
return suite;
}
+ private boolean isJunit4UpgradeCheck()
+ {
+ final String property = System.getProperty(
"surefire.junit4.upgradecheck" );
+ return property != null;
+ }
+
+ // This reflection is not due to linkage issues, but only an attempt at
being generic.
public static Object instantiateObject( String className, Object[] params,
ClassLoader classLoader )
throws TestSetFailedException, ClassNotFoundException,
NoSuchMethodException
{
@@ -244,6 +273,7 @@ public class Surefire
return object;
}
+ // This reflection is not due to linkage issues, but only an attempt at
being generic.
private static SurefireTestSuite instantiateSuite( String suiteClass,
Object[] params, ClassLoader classLoader )
throws TestSetFailedException
{
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java?rev=1033896&r1=1033895&r2=1033896&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java
Thu Nov 11 11:39:26 2010
@@ -29,6 +29,7 @@ import org.apache.maven.surefire.testset
import org.apache.maven.surefire.testset.TestSetFailedException;
import java.io.File;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -45,6 +46,8 @@ public abstract class AbstractDirectoryT
protected SortedMap testSets;
private int totalTests;
+
+ private List classesSkippedByValidation = new ArrayList();
private final SurefireDirectoryScanner surefireDirectoryScanner;
@@ -54,7 +57,7 @@ public abstract class AbstractDirectoryT
this.surefireDirectoryScanner = new SurefireDirectoryScanner(basedir,
includes, excludes);
}
- public Map locateTestSets( ClassLoader classLoader )
+ public Map locateTestSets( ClassLoader classLoader)
throws TestSetFailedException
{
if ( testSets != null )
@@ -72,6 +75,7 @@ public abstract class AbstractDirectoryT
if ( testSet == null )
{
+ classesSkippedByValidation.add( testClass );
continue;
}
@@ -146,6 +150,11 @@ public abstract class AbstractDirectoryT
executeTestSet( testSet, reporterManagerFactory, classLoader );
}
+ public List getClassesSkippedByValidation()
+ {
+ return Collections.unmodifiableList(classesSkippedByValidation);
+ }
+
public int getNumTests()
{
if ( testSets == null )
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/SurefireTestSuite.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/SurefireTestSuite.java?rev=1033896&r1=1033895&r2=1033896&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/SurefireTestSuite.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/SurefireTestSuite.java
Thu Nov 11 11:39:26 2010
@@ -23,6 +23,7 @@ import org.apache.maven.surefire.report.
import org.apache.maven.surefire.report.ReporterManagerFactory;
import org.apache.maven.surefire.testset.TestSetFailedException;
+import java.util.List;
import java.util.Map;
/**
@@ -40,6 +41,8 @@ public interface SurefireTestSuite
int getNumTests();
+ List getClassesSkippedByValidation();
+
Map locateTestSets( ClassLoader classLoader )
throws TestSetFailedException;
}
Modified:
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitDirectoryTestSuite.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitDirectoryTestSuite.java?rev=1033896&r1=1033895&r2=1033896&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitDirectoryTestSuite.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit/src/main/java/org/apache/maven/surefire/junit/JUnitDirectoryTestSuite.java
Thu Nov 11 11:39:26 2010
@@ -44,19 +44,7 @@ public class JUnitDirectoryTestSuite
protected SurefireTestSet createTestSet( Class testClass, ClassLoader
classLoader )
throws TestSetFailedException
{
- Class junitClass = null;
- try
- {
- junitClass = classLoader.loadClass( Test.class.getName() );
- }
- catch ( NoClassDefFoundError e)
- {
- // ignore this
- }
- catch ( ClassNotFoundException e )
- {
- // ignore this
- }
+ Class junitClass = getJUnitClass( classLoader );
SurefireTestSet testSet;
if ( junitClass != null && junitClass.isAssignableFrom( testClass ) )
@@ -74,6 +62,24 @@ public class JUnitDirectoryTestSuite
return testSet;
}
+ private Class getJUnitClass( ClassLoader classLoader )
+ {
+ Class junitClass = null;
+ try
+ {
+ junitClass = classLoader.loadClass( Test.class.getName() );
+ }
+ catch ( NoClassDefFoundError e)
+ {
+ // ignore this
+ }
+ catch ( ClassNotFoundException e )
+ {
+ // ignore this
+ }
+ return junitClass;
+ }
+
private boolean classHasPublicNoArgConstructor( Class testClass )
{
try
Modified: maven/surefire/trunk/surefire-providers/surefire-junit4/pom.xml
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit4/pom.xml?rev=1033896&r1=1033895&r2=1033896&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit4/pom.xml (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit4/pom.xml Thu Nov 11
11:39:26 2010
@@ -45,8 +45,8 @@
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <fork>false</fork>
- <compilerVersion>1.4</compilerVersion>
+ <source>1.5</source>
+ <target>1.5</target>
</configuration>
</plugin>
<plugin>
Modified:
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4DirectoryTestSuite.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4DirectoryTestSuite.java?rev=1033896&r1=1033895&r2=1033896&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4DirectoryTestSuite.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4DirectoryTestSuite.java
Thu Nov 11 11:39:26 2010
@@ -32,12 +32,10 @@ import java.util.ArrayList;
*
* @author Karl M. Davis
*/
+...@suppresswarnings( { "UnusedDeclaration" } )
public class JUnit4DirectoryTestSuite
extends AbstractDirectoryTestSuite
{
- /**
- * Constructor.
- */
public JUnit4DirectoryTestSuite( File basedir, ArrayList includes,
ArrayList excludes )
{
super( basedir, includes, excludes );
@@ -48,12 +46,13 @@ public class JUnit4DirectoryTestSuite
* a surefire test set that will later be executed.
*
* @see
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite#createTestSet(java.lang.Class,
- *java.lang.ClassLoader)
+ * java.lang.ClassLoader)
*/
- protected SurefireTestSet createTestSet( Class testClass, ClassLoader
classLoader )
+ protected SurefireTestSet createTestSet( Class testClass, ClassLoader
testsClassLoader )
throws TestSetFailedException
{
- return new JUnit4TestSet( testClass );
+ JUnit4TestChecker jUnit4TestChecker = new JUnit4TestChecker(
testsClassLoader );
+ return jUnit4TestChecker.isValidJUnit4Test( testClass ) ? new
JUnit4TestSet( testClass ) : null;
}
}
Added:
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java?rev=1033896&view=auto
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
(added)
+++
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
Thu Nov 11 11:39:26 2010
@@ -0,0 +1,130 @@
+package org.apache.maven.surefire.junit4;
+/*
+ * 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 org.apache.maven.surefire.testset.TestSetFailedException;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * @author Kristian Rosenvold
+ */
+public class JUnit4TestChecker
+{
+ private final Class junitClass;
+
+ private final Class runWith;
+
+ private final Class suite;
+
+ public JUnit4TestChecker( ClassLoader testClassLoader )
+ {
+ this.junitClass = getJUnitClass( testClassLoader,
junit.framework.Test.class.getName() );
+ this.suite = getJUnitClass( testClassLoader,
org.junit.runners.Suite.class.getName() );
+ this.runWith = getJUnitClass( testClassLoader,
org.junit.runner.RunWith.class.getName() );
+ }
+
+ @SuppressWarnings( { "unchecked" } )
+ public boolean isValidJUnit4Test( Class testClass )
+ throws TestSetFailedException
+ {
+ if ( junitClass != null && junitClass.isAssignableFrom( testClass ) )
+ {
+ return true;
+ }
+
+ Annotation runWithAnno = testClass.getAnnotation( runWith );
+ if ( runWithAnno != null )
+ {
+ final Class value = runWithValue( runWithAnno );
+ if ( suite.isAssignableFrom( value ) )
+ {
+ return true;
+ }
+ }
+
+ Class classToCheck = testClass;
+ while (classToCheck != null){
+ if ( checkforTestAnnotatedMethod( classToCheck )){
+ return true;
+ }
+ classToCheck = classToCheck.getSuperclass();
+ }
+ return false;
+ }
+
+ private boolean checkforTestAnnotatedMethod( Class testClass )
+ {
+ for ( Method lMethod : testClass.getDeclaredMethods() )
+ {
+ for ( Annotation lAnnotation : lMethod.getAnnotations() )
+ {
+ if ( org.junit.Test.class.isAssignableFrom(
lAnnotation.annotationType() ) )
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private Class getJUnitClass( ClassLoader classLoader, String className )
+ {
+ Class junitClass = null;
+ try
+ {
+ junitClass = classLoader.loadClass( className );
+ }
+ catch ( NoClassDefFoundError e )
+ {
+ // ignore this
+ }
+ catch ( ClassNotFoundException e )
+ {
+ // ignore this
+ }
+ return junitClass;
+ }
+
+ private Class runWithValue(Object object)
+ throws TestSetFailedException
+ {
+ final Method valueMethod;
+ try
+ {
+ valueMethod = object.getClass().getMethod( "value" );
+ return (Class) valueMethod.invoke( object);
+ }
+ catch ( NoSuchMethodException e )
+ {
+ throw new TestSetFailedException( e );
+ }
+ catch ( InvocationTargetException e )
+ {
+ throw new TestSetFailedException( e );
+ }
+ catch ( IllegalAccessException e )
+ {
+ throw new TestSetFailedException( e );
+ }
+ }
+
+}
Propchange:
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4TestCheckerTest.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4TestCheckerTest.java?rev=1033896&view=auto
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4TestCheckerTest.java
(added)
+++
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4TestCheckerTest.java
Thu Nov 11 11:39:26 2010
@@ -0,0 +1,133 @@
+package org.apache.maven.surefire.junit4;
+/*
+ * 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 junit.framework.TestCase;
+import org.apache.maven.surefire.testset.TestSetFailedException;
+import org.junit.Test;
+import org.junit.internal.runners.InitializationError;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * @author Kristian Rosenvold
+ */
+public class JUnit4TestCheckerTest
+{
+ JUnit4TestChecker jUnit4TestChecker = new JUnit4TestChecker(
this.getClass().getClassLoader() );
+
+ @Test
+ public void validJunit4Annotated()
+ throws TestSetFailedException
+ {
+ assertTrue( jUnit4TestChecker.isValidJUnit4Test(
JUnit4TestCheckerTest.class ) );
+ }
+
+ @Test
+ public void validJunit4itsAJunit3Test()
+ throws TestSetFailedException
+ {
+ assertTrue( jUnit4TestChecker.isValidJUnit4Test( AlsoValid.class ) );
+ }
+
+ @Test
+ public void validJunitSubclassWithoutOwnTestmethods()
+ throws TestSetFailedException
+ {
+ assertTrue( jUnit4TestChecker.isValidJUnit4Test(
SubClassWithoutOwnTestMethods.class ) );
+ }
+
+ @Test
+ public void validSuite()
+ throws TestSetFailedException
+ {
+ assertTrue( jUnit4TestChecker.isValidJUnit4Test( SuiteValid1.class ) );
+ }
+ @Test
+ public void validCustomSuite()
+ throws TestSetFailedException
+ {
+ assertTrue( jUnit4TestChecker.isValidJUnit4Test( SuiteValid2.class ) );
+ }
+
+ @Test
+ public void invalidTest()
+ throws TestSetFailedException
+ {
+ assertFalse( jUnit4TestChecker.isValidJUnit4Test( NotValidTest.class )
);
+ }
+
+
+ public static class AlsoValid
+ extends TestCase
+ {
+ public void testSomething()
+ {
+
+ }
+ }
+
+ public static class NotValidTest
+ {
+ public void testSomething()
+ {
+ }
+ }
+
+ public abstract static class BaseClassWithTest
+ {
+ @Test
+ public void weAreAlsoATest()
+ {
+ }
+ }
+ public static class SubClassWithoutOwnTestMethods extends BaseClassWithTest
+ {
+ }
+
+ @RunWith(Suite.class)
+ public static class SuiteValid1
+ {
+ public void testSomething()
+ {
+
+ }
+ }
+
+ @RunWith(MySuite.class)
+ public static class SuiteValid2
+ {
+ public void testSomething()
+ {
+
+ }
+ }
+
+ class MySuite extends Suite {
+ MySuite( Class<?> klass )
+ throws InitializationError
+ {
+ super( klass );
+ }
+ }
+
+}
Propchange:
maven/surefire/trunk/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4TestCheckerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java?rev=1033896&r1=1033895&r2=1033896&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java
Thu Nov 11 11:39:26 2010
@@ -27,6 +27,7 @@ import org.apache.maven.surefire.util.Su
import java.io.File;
import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -67,6 +68,12 @@ public class JUnitCoreDirectoryTestSuite
JUnitCoreTestSet.execute( testsToRun.getLocatedClasses(),
reporterManagerFactory, jUnitCoreParameters );
}
+
+ public List getClassesSkippedByValidation()
+ {
+ return new ArrayList( );
+ }
+
public void execute( String testSetName, ReporterManagerFactory
reporterManagerFactory, ClassLoader classLoader )
throws ReporterException, TestSetFailedException
{
Modified:
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGXmlTestSuite.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGXmlTestSuite.java?rev=1033896&r1=1033895&r2=1033896&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGXmlTestSuite.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGXmlTestSuite.java
Thu Nov 11 11:39:26 2010
@@ -108,6 +108,11 @@ public class TestNGXmlTestSuite
return suiteFiles.length;
}
+ public List getClassesSkippedByValidation()
+ {
+ return new ArrayList( );
+ }
+
public Map locateTestSets( ClassLoader classLoader )
throws TestSetFailedException
{