¿Cómo se crean pruebas automatizadas de un complemento Maven usando JUnit?
-
01-07-2019 - |
Pregunta
Tengo un complemento (en su mayoría) funcional desarrollado, pero dado que su función está directamente relacionada con el proyecto que procesa, ¿cómo se desarrollan pruebas unitarias y de integración para el complemento?La mejor idea que he tenido es crear un proyecto de prueba de integración para el complemento que lo utiliza durante su ciclo de vida y tiene pruebas que informan sobre el éxito o el fracaso del complemento en el procesamiento de los datos.
¿Alguien con mejores ideas?
Solución
Necesitas usar el arnés-de-prueba-de-complementos-maven,
<dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-plugin-testing-harness</artifactId> <version>1.1</version> <scope>test</scope> </dependency>
Usted deriva sus clases de prueba unitaria de ResumenMojoPruebaCaso.
Necesita crear un POM básico, generalmente en el src/test/resources
carpeta.
<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>
Utilice AbstractMojoTest.lookupMojo(String,File) (o una de las otras variaciones) para cargar Mojo para un objetivo específico y ejecutarlo.
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
Creé mi propio complemento al que puedes consultar para obtener aclaraciones. http://ldap-plugin.btmatthews.com,
Otros consejos
Si desea ver algunos ejemplos del mundo real, el complemento Terracotta Maven (tc-maven-plugin) tiene algunas pruebas que puede examinar en la forja de código abierto.
El complemento está en: http://forge.terracotta.org/releases/projects/tc-maven-plugin/
Y la fuente está en svn en: http://svn.terracotta.org/svn/forge/projects/tc-maven-plugin/trunk/
Y en esa fuente puedes encontrar algunas pruebas reales del complemento Maven en:src/test/java/org/terracotta/maven/plugins/tc/