o Migrated test for MPLUGIN-105 into automated IT suite

git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@703706 13f79535-47bb-0310-9956-ffa450edef68
master
Benjamin Bentmann 2008-10-11 18:41:20 +00:00
parent 8e70adc89b
commit c061da352d
10 changed files with 189 additions and 179 deletions

View File

@ -273,10 +273,6 @@
<configuration>
<debug>true</debug>
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
<pomExcludes>
<!-- TODO: Investigate whether this is a core IT or a plugin IT. In the latter case, migrate it into the automated build -->
<pomExclude>plugin-report-failure-it/*</pomExclude>
</pomExcludes>
<preBuildHookScript>setup.bsh</preBuildHookScript>
<postBuildHookScript>verify.bsh</postBuildHookScript>
<localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>

View File

@ -34,6 +34,10 @@ under the License.
java-based mojo sources, install the plugin, and then use it.
</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>

View File

@ -1,38 +0,0 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.maven.its</groupId>
<artifactId>maven-integration-test-sample</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven Integration Tests</name>
<dependencies>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-verifier</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.its</groupId>
<artifactId>maven-integration-test-helper</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- TODO: remove when snapshots are released -->
<repositories>
<repository>
<id>apache.snapshots</id>
<url>http://people.apache.org/repo/m2-snapshot-repository</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>

View File

@ -1,33 +0,0 @@
import org.apache.maven.integrationtests.AbstractMavenIntegrationTestCase;
import org.apache.maven.it.Verifier;
import org.apache.maven.it.util.ResourceExtractor;
import java.io.File;
/**
* Tests that the PluginDescriptor.getArtifacts() call returns all of the dependencies of the plugin,
* not just those that made it past the filter excluding Maven's core artifacts.
*/
public class PluginReportCrashTest
extends AbstractMavenIntegrationTestCase
{
public void testPluginReport()
throws Exception
{
File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/PluginReportCrash" );
Verifier verifier = new Verifier( testDir.getAbsolutePath() );
verifier.executeGoal( "org.apache.maven.plugins:maven-plugin-plugin:2.3:report" );
verifier.verifyErrorFreeLog();
verifier.resetStreams();
verifier = new Verifier( testDir.getAbsolutePath() );
verifier.executeGoal( "org.apache.maven.plugins:maven-plugin-plugin:2.4:report" );
verifier.verifyErrorFreeLog();
verifier.resetStreams();
}
}

View File

@ -1,23 +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.pluginreportcrash</groupId>
<artifactId>mng-pluginreportcrash-mojo</artifactId>
<packaging>maven-plugin</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>PluginReportCrash</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,81 +0,0 @@
package org.apache.maven.its.mng3473.mng_3473_mojo;
/*
* Copyright 2001-2005 The Apache Software Foundation.
*
* Licensed 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.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
* Goal which touches a timestamp file.
*
* @goal touch
*
* @phase process-sources
*/
public class MyMojo
extends AbstractMojo
{
/**
* Location of the file.
* @parameter expression="${project.build.directory}"
* @required
*/
private File outputDirectory;
public void execute()
throws MojoExecutionException
{
File f = outputDirectory;
if ( !f.exists() )
{
f.mkdirs();
}
File touch = new File( f, "touch.txt" );
FileWriter w = null;
try
{
w = new FileWriter( touch );
w.write( "touch.txt" );
}
catch ( IOException e )
{
throw new MojoExecutionException( "Error creating file " + touch, e );
}
finally
{
if ( w != null )
{
try
{
w.close();
}
catch ( IOException e )
{
// ignore
}
}
}
}
}

View File

@ -0,0 +1 @@
invoker.goals = clean site

View File

@ -0,0 +1,83 @@
<?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</groupId>
<artifactId>plugin-report</artifactId>
<version>1.0</version>
<packaging>maven-plugin</packaging>
<name>MPLUGIN-105</name>
<description>
Test basic site generation to guard against regression of MPLUGIN-105.
</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>2.0-beta-7</version>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.0.1</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>@project.version@</version>
</plugin>
</plugins>
</reporting>
</project>

View File

@ -0,0 +1,65 @@
package org;
/*
* 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.plugin.AbstractMojo;
/**
* Does nothing.
*
* @goal noop
* @phase process-sources
* @requiresDependencyResolution test
* @requiresDirectInvocation true
* @requiresOnline
* @inheritByDefault false
* @execute phase="compile"
* @aggregator
* @since 1.0
*
* @deprecated You don't use test goals, do you?
*/
public class MyMojo
extends AbstractMojo
{
/**
* This is a test.
*
* @parameter
* @required
*/
private String required;
/**
* This is a test.
*
* @parameter expression="${string}" default-value="${project.version}"
* @deprecated Just testing.
* @since 1.1
*/
private String string;
public void execute()
{
// intentional do nothing
}
}

View File

@ -0,0 +1,36 @@
import java.io.*;
import java.util.*;
import java.util.regex.*;
try
{
File siteDir = new File( basedir, "target/site" );
System.out.println( "Checking for existence of site directory: " + siteDir );
if ( !siteDir.isDirectory() )
{
System.out.println( "FAILED!" );
return false;
}
String[] expectedFiles = {
"noop-mojo.html",
"plugin-info.html",
};
for ( String path : expectedFiles )
{
File file = new File( siteDir, path );
System.out.println( "Checking for existence of doc file: " + file );
if ( !file.isFile() )
{
System.out.println( "FAILED!" );
return false;
}
}
}
catch( Throwable t )
{
t.printStackTrace();
return false;
}
return true;