Question

J'ai un plugin (principalement) fonctionnel développé, mais puisque sa fonction est directement liée au projet qu'il traite, comment développer des tests unitaires et d'intégration pour le plugin. La meilleure idée que j'ai eue est de créer un projet de test d'intégration pour le plug-in qui utilise le plug-in pendant son cycle de vie et comporte des tests qui signalent le succès ou l'échec du plug-in dans le traitement des données.

Quelqu'un avec de meilleures idées?

Était-ce utile?

La solution

Vous devez utiliser le 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>

Vos classes de tests unitaires sont dérivées de AbstractMojoTestCase .

Vous devez créer un POM sans système d'exploitation, généralement dans le dossier src / test / resources .

    <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>

Utilisez AbstractMojoTest.lookupMojo (String, File) (ou l'une des autres variantes) pour charger le Mojo pour un objectif spécifique et l'exécuter.

    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

J'ai créé mon propre plugin auquel vous pouvez vous reporter pour plus de précisions http: //ldap-plugin.btmatthews .com ,

Autres conseils

Si vous souhaitez voir des exemples concrets, le plug-in Terracotta Maven (tc-maven-plugin) comporte des tests que vous pouvez consulter en open source.

Le plugin se trouve à l'adresse: http://forge.terracotta.org / releases / projects / tc-maven-plugin /

Et la source est dans svn à l'adresse: http: //svn.terracotta.org/svn/forge/projects/tc-maven-plugin/trunk/

Et dans cette source, vous pouvez trouver quelques tests de plug-in Maven à l'adresse suivante: src / test / java / org / terracotta / maven / plugins / tc /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top