o Decoupled IT from production plugins and local repo format

git-svn-id: https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk@985682 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Benjamin Bentmann 2010-08-15 14:21:56 +00:00
parent 830da18971
commit 8f013114af
10 changed files with 162 additions and 120 deletions

View File

@ -20,16 +20,14 @@ package org.apache.maven.it;
*/ */
import java.io.File; import java.io.File;
import java.util.List;
import org.apache.maven.it.Verifier; import org.apache.maven.it.Verifier;
import org.apache.maven.it.util.FileUtils;
import org.apache.maven.it.util.ResourceExtractor; import org.apache.maven.it.util.ResourceExtractor;
/** /**
* This is a test set for <a href="http://jira.codehaus.org/browse/MNG-3667">MNG-3667</a>. * This is a test set for <a href="http://jira.codehaus.org/browse/MNG-3667">MNG-3667</a>.
* *
* @todo Fill in a better description of what this test verifies!
*
* @author <a href="mailto:brianf@apache.org">Brian Fox</a> * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
* @author jdcasey * @author jdcasey
* *
@ -37,51 +35,34 @@ import org.apache.maven.it.util.ResourceExtractor;
public class MavenITmng3667ResolveDepsWithBadPomVersionTest public class MavenITmng3667ResolveDepsWithBadPomVersionTest
extends AbstractMavenIntegrationTestCase extends AbstractMavenIntegrationTestCase
{ {
public MavenITmng3667ResolveDepsWithBadPomVersionTest() public MavenITmng3667ResolveDepsWithBadPomVersionTest()
{ {
super( "(2.0.9,)" ); // only test in 2.0.9+ super( "[2.0.3,)" );
} }
public void testitMNG3667 () /**
* Verify that dependency resolution gracefully ignores dependency POMs that have coordinates which don't
* match the deployed artifact.
*/
public void testit()
throws Exception throws Exception
{ {
// The testdir is computed from the location of this
// file.
File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3667" ); File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3667" );
File repoDir = new File( testDir, "repo" );
File projectDir = new File( testDir, "project" );
Verifier verifier; Verifier verifier = newVerifier( testDir.getAbsolutePath() );
verifier.setAutoclean( false );
/* verifier.deleteDirectory( "target" );
* We must first make sure that any artifact created verifier.deleteArtifacts( "org.apache.maven.its.mng3667" );
* by this test has been removed from the local verifier.getCliOptions().add( "-s" );
* repository. Failing to do this could cause verifier.getCliOptions().add( "settings.xml" );
* unstable test results. Fortunately, the verifier verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() );
* makes it easy to do this. verifier.executeGoal( "validate" );
*/
verifier = newVerifier( projectDir.getAbsolutePath() );
File localRepoDir = new File( verifier.localRepo );
FileUtils.copyDirectoryStructure( repoDir, localRepoDir );
verifier.executeGoal( "compile" );
/*
* This is the simplest way to check a build
* succeeded. It is also the simplest way to create
* an IT test: make the build pass when the test
* should pass, and make the build fail when the
* test should fail. There are other methods
* supported by the verifier. They can be seen here:
* http://maven.apache.org/shared/maven-verifier/apidocs/index.html
*/
verifier.verifyErrorFreeLog(); verifier.verifyErrorFreeLog();
/*
* Reset the streams before executing the verifier
* again.
*/
verifier.resetStreams(); verifier.resetStreams();
List cp = verifier.loadLines( "target/classpath.txt", "UTF-8" );
assertTrue( cp.toString(), cp.contains( "dep-0.1.jar" ) );
} }
} }

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.mng3667</groupId>
<artifactId>test</artifactId>
<version>0.1</version>
<packaging>jar</packaging>
<name>Maven Integration Test :: MNG-3667</name>
<description>
Verify that dependency resolution gracefully ignores dependency POMs that have coordinates which don't
match the deployed artifact.
</description>
<dependencies>
<dependency>
<groupId>org.apache.maven.its.mng3667</groupId>
<artifactId>dep</artifactId>
<version>0.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.its.plugins</groupId>
<artifactId>maven-it-plugin-dependency-resolution</artifactId>
<version>2.1-SNAPSHOT</version>
<configuration>
<compileClassPath>target/classpath.txt</compileClassPath>
<significantPathLevels>1</significantPathLevels>
</configuration>
<executions>
<execution>
<id>resolve</id>
<phase>validate</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -1,22 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its.mng3667</groupId>
<artifactId>mng-3667-resolveDepsWithBadPomVersion</artifactId>
<packaging>jar</packaging>
<version>1</version>
<dependencies>
<dependency>
<groupId>mng3667</groupId>
<artifactId>bad-dep</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,13 +0,0 @@
package testing;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}

View File

@ -1,38 +0,0 @@
package testing;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}

View File

@ -1,8 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mng3667</groupId>
<artifactId>bad-dep</artifactId>
<packaging>jar</packaging>
<version>SNAPSHOT</version>
</project>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<!--
NOTE: It's the essential part of this test that the coordinates in this POM are all wrong, i.e. don't match
the deployed artifact.
-->
<groupId>org.apache.maven.its.mng3667.bad</groupId>
<artifactId>dep-bad</artifactId>
<version>0.1-SNAPSHOT</version>
</project>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<settings>
<profiles>
<profile>
<id>maven-core-it-repo</id>
<repositories>
<repository>
<id>maven-core-it</id>
<url>@baseurl@/repo</url>
<releases>
<checksumPolicy>ignore</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>maven-core-it-repo</activeProfile>
</activeProfiles>
</settings>