我正在开发一个maven插件,该插件需要在构建的特定阶段运行。我已经使用原型创建了插件项目,因此可以使用Maven测试工具来进行单元测试。
但是我的插件需要在编译步骤后的某个时间运行,并且看来测试只是在执行插件。在运行插件之前,是否有办法告诉测试运行到某个阶段?
public class MyMojoTest
{
@Rule
public MojoRule rule = new MojoRule()
{
@Override
protected void before() throws Throwable
{
}
@Override
protected void after()
{
}
};
@Test
public void testSomething()
throws Exception
{
File pom = new File( "target/test-classes/project-to-test/" );
assertNotNull( pom );
assertTrue( pom.exists() );
LicenceScanner myMojo = ( LicenceScanner ) rule.lookupConfiguredMojo( pom, "scan" );
assertNotNull( myMojo );
myMojo.execute();
File outputDirectory = ( File ) rule.getVariableValueFromObject( myMojo, "outputDirectory" );
assertNotNull( outputDirectory );
assertTrue( outputDirectory.exists() );
File touch = new File( outputDirectory, "output" );
assertTrue( touch.exists() );
}
}