Author: krosenvold Date: Wed Feb 9 20:02:57 2011 New Revision: 1069064 URL: http://svn.apache.org/viewvc?rev=1069064&view=rev Log: [SUREFIRE-698] 47 provider ignores junit-dep
Added: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnitDepIT.java (contents, props changed) - copied, changed from r1069062, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit44DepIT.java Removed: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit44DepIT.java Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-dep/pom.xml Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java?rev=1069064&r1=1069063&r2=1069064&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java (original) +++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java Wed Feb 9 20:02:57 2011 @@ -109,9 +109,10 @@ public abstract class AbstractSurefireMo try { + final Artifact junitDepArtifact = getJunitDepArtifact(); wellKnownProviders = new ProviderList( new ProviderInfo[]{ new TestNgProviderInfo( getTestNgArtifact() ), - new JUnitCoreProviderInfo( getJunitArtifact() ), - new JUnit4ProviderInfo( getJunitArtifact(), getJunitDepArtifact() ), new JUnit3ProviderInfo() }, + new JUnitCoreProviderInfo( getJunitArtifact(), junitDepArtifact ), + new JUnit4ProviderInfo( getJunitArtifact(), junitDepArtifact ), new JUnit3ProviderInfo() }, new DynamicProviderInfo( null ) ); return wellKnownProviders.resolve( getLog() ); @@ -477,8 +478,8 @@ public abstract class AbstractSurefireMo if ( !range.containsVersion( new DefaultArtifactVersion( artifact.getVersion() ) ) ) { throw new MojoFailureException( - "TestNG support requires version 4.7 or above. You have declared version " - + artifact.getVersion() ); + "TestNG support requires version 4.7 or above. You have declared version " + + artifact.getVersion() ); } } return artifact; @@ -642,7 +643,7 @@ public abstract class AbstractSurefireMo checksum.add( getObjectFactory() ); checksum.add( getFailIfNoTests() ); checksum.add( getRunOrder() ); - addPluginSpecificChecksumItems(checksum); + addPluginSpecificChecksumItems( checksum ); return checksum.getSha1(); } @@ -792,8 +793,8 @@ public abstract class AbstractSurefireMo Artifact artifact = (Artifact) i.next(); getLog().debug( - "Adding to " + getPluginName() + " booter test classpath: " + artifact.getFile().getAbsolutePath() - + " Scope: " + artifact.getScope() ); + "Adding to " + getPluginName() + " booter test classpath: " + artifact.getFile().getAbsolutePath() + + " Scope: " + artifact.getScope() ); bootClasspath.addClassPathElementUrl( artifact.getFile().getAbsolutePath() ); } @@ -870,8 +871,8 @@ public abstract class AbstractSurefireMo } catch ( Exception e ) { - String msg = "Build uses Maven 2.0.x, cannot propagate system properties" - + " from command line to tests (cf. SUREFIRE-121)"; + String msg = "Build uses Maven 2.0.x, cannot propagate system properties" + + " from command line to tests (cf. SUREFIRE-121)"; if ( getLog().isDebugEnabled() ) { getLog().warn( msg, e ); @@ -1113,9 +1114,12 @@ public abstract class AbstractSurefireMo { private final Artifact junitArtifact; - JUnitCoreProviderInfo( Artifact junitArtifact ) + private final Artifact junitDepArtifact; + + JUnitCoreProviderInfo( Artifact junitArtifact, Artifact junitDepArtifact ) { this.junitArtifact = junitArtifact; + this.junitDepArtifact = junitDepArtifact; } public String getProviderName() @@ -1123,9 +1127,15 @@ public abstract class AbstractSurefireMo return "org.apache.maven.surefire.junitcore.JUnitCoreProvider"; } + private boolean is47CompatibleJunitDep() + { + return junitDepArtifact != null && isJunit47Compatible( junitDepArtifact ); + } + public boolean isApplicable() { - return isAnyJunit4( junitArtifact ) && isAnyConcurrencySelected() && isJunit47Compatible( junitArtifact ); + final boolean isJunitArtifact47 = isAnyJunit4( junitArtifact ) && isJunit47Compatible( junitArtifact ); + return isAnyConcurrencySelected() && ( isJunitArtifact47 || is47CompatibleJunitDep() ); } public void addProviderProperties() Copied: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnitDepIT.java (from r1069062, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit44DepIT.java) URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnitDepIT.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnitDepIT.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit44DepIT.java&r1=1069062&r2=1069064&rev=1069064&view=diff ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnit44DepIT.java (original) +++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnitDepIT.java Wed Feb 9 20:02:57 2011 @@ -24,10 +24,10 @@ package org.apache.maven.surefire.its; * * @author <a href="mailto:dfabul...@apache.org">Dan Fabulich</a> */ -public class JUnit44DepIT +public class JUnitDepIT extends SurefireVerifierTestClass { - public JUnit44DepIT() + public JUnitDepIT() { super( "/junit44-dep" ); } @@ -35,17 +35,34 @@ public class JUnit44DepIT public void testJUnit44Dep() throws Exception { + debugLogging(); + addGoal( "-Djunit-dep.version=4.4" ); executeTest(); + verifyErrorFreeLog(); assertTestSuiteResults( 1, 0, 0, 0 ); + verifyTextInLog( "surefire-junit4" ); // Ahem. Will match on the 4.7 provider too } public void testJUnit44DepWithSneaky381() throws Exception { + debugLogging(); activateProfile("provided381"); + addGoal( "-Djunit-dep.version=4.4" ); + executeTest(); + verifyErrorFreeLog(); + assertTestSuiteResults( 1, 0, 0, 0 ); + } + + public void testJUnit47Dep() + throws Exception + { + debugLogging(); + addGoal( "-Djunit-dep.version=4.7" ); executeTest(); verifyErrorFreeLog(); assertTestSuiteResults( 1, 0, 0, 0 ); + verifyTextInLog( "surefire-junit47" ); } Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/JUnitDepIT.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-dep/pom.xml URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-dep/pom.xml?rev=1069064&r1=1069063&r2=1069064&view=diff ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-dep/pom.xml (original) +++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/junit44-dep/pom.xml Wed Feb 9 20:02:57 2011 @@ -32,7 +32,7 @@ <dependency> <groupId>junit</groupId> <artifactId>junit-dep</artifactId> - <version>4.4</version> + <version>${junit-dep.version}</version> <scope>test</scope> </dependency> </dependencies> @@ -64,6 +64,9 @@ <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${surefire.version}</version> + <configuration> + <parallel>classes</parallel> + </configuration> </plugin> </plugins> </build>