Ho un plug-in Maven che sto tentando di testare utilizzando una sottoclasse di AbstractMojoTestCase
. Il plug-in Mojo
definisce un parametro outputFolder
con un defaultValue
. In genere questo parametro non viene fornito dall'utente nel POM.Come popolare il parametro "defaultValue" in Maven "AbstractMojoTestCase"?
@Parameter(defaultValue = "${project.build.directory}/someOutputFolder")
private File outputFolder;
E se utilizzo il plug-in in uno scenario reale, outputFolder viene impostato come predefinito.
Ma se la prova Mojo
usando l'AbstractMojoTestCase
poi mentre parametri definiti in POM prova sono popolati, parametri con un defaultValue
non definiti nel POM non sono popolati.
public class MyPluginTestCase extends AbstractMojoTestCase {
public void testAssembly() throws Exception {
final File pom = getTestFile("src/test/resources/test-pom.xml");
assertNotNull(pom);
assertTrue(pom.exists());
final MyMojo myMojo = (BaselineAssemblyMojo) lookupMojo("assemble", pom);
assertNotNull(myMojo);
myMojo.execute(); // Dies due to NullPointerException on outputFolder.
}
}
Inoltre: se io definisco il parametro outputFolder
nel POM in questo modo:
<outputFolder>${project.build.directory}/someOutputFolder</outputFolder>
poi ${project.build.directory}
è NON risolta entro l'AbstractMojoTestCase.
Quindi, cosa devo fare per ottenere il valore predefinito popolato durante il test?
Oppure è un errore nello AbstractMojoTestCase
?
Questo è Maven-3.2.3, maven-plugin-plugin-3.2, JDK 8
Questo è un po 'vecchio ma avete mai trovato una soluzione? Sto affrontando lo stesso problema. – GuiSim
No, non l'ho fatto, mi dispiace @GuiSim. Ma se ** tu ** trovi una soluzione, per favore, per favore postala qui. – William
Modifica: vedere la risposta. – GuiSim