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?

¿Fue útil?

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/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top