You need to use maven-plugin-testing-harness ,
<dependency>
<groupId> org.apache.maven.shared </groupId>
<artifactId> maven-plugin-testing-harness </artifactId>
<version> 1.1 </version>
<scope> test </scope>
</dependency>
You get unit test classes from AbstractMojoTestCase .
You need to create a POM with bare bones, usually in the src/test/resources folder.
<project>
<build>
<plugins>
<plugin>
<groupId> com.mydomain, mytools </groupId>
<artifactId> mytool-maven-plugin </artifactId>
<configuration>
<! - Insert configuration settings here ->
</configuration>
<executions>
<execution>
<goals>
<goal> mygoal </goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Use AbstractMojoTest.lookupMojo (String, File) (or one of the other options) to load Mojo for a specific purpose and execute it.
final File testPom = new File (PlexusTestCase.getBasedir (), "/target/test-classes/mytools-plugin-config.xml");
Mojo mojo = this.lookupMojo ("mygoal", testPom);
// Insert assertions to validate that your plugin was initialised correctly
mojo.execute ();
// Insert assertions to validate that your plugin behaved as expected
I created my own plugin, which you can find for explanation at http://ldap-plugin.btmatthews.com ,
source share