Frage

Ich habe ein (meist) arbeitet Plugin entwickelt habe, aber da seine Funktion direkt mit dem Projekt wird es verarbeitet, wie Sie Modul- und Integrationstests für das Plugin entwickeln. Die beste Idee habe ich habe, ist ein Integrationstestprojekt für das Plugin zu erstellen, die das Plugin während seines Lebenszyklus verwendet und Tests, die bei der Verarbeitung der Daten über den Plug-in Erfolg oder Misserfolg melden.

Jeder mit besseren Ideen?

War es hilfreich?

Lösung

Sie müssen das Maven-Plugin-Test-Geschirr ,

    <dependency>
        <groupId>org.apache.maven.shared</groupId>
        <artifactId>maven-plugin-testing-harness</artifactId>
        <version>1.1</version>
        <scope>test</scope>
    </dependency>

Sie leiten Ihre Einheit Testklassen von AbstractMojoTestCase .

Sie benötigen einen nackten Knochen POM zu schaffen, in der Regel im src/test/resources Ordner.

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

Mit der AbstractMojoTest.lookupMojo (String, File) (oder eine der anderen Varianten) die Mojo für ein bestimmtes Ziel zu laden und auszuführen.

    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

Ich habe mein ein Plugin meiner eigenen, dass Sie zur Klärung verweisen http: //ldap-plugin.btmatthews .com ,

Andere Tipps

Wenn Sie möchten, dass einige reale Beispiele, um zu sehen, die Terrakotta-Maven-Plugin (tc-Maven-Plugin) hat einige Tests mit ihm, dass Sie in der Open-Source-Schmiede lesen kann.

Das Plugin ist unter: http://forge.terracotta.org / releases / projects / tc-maven-Plugin /

Und die Quelle ist in svn unter: http: //svn.terracotta.org/svn/forge/projects/tc-maven-plugin/trunk/

Und in dieser Quelle können Sie einige aktuelle Maven Plugin-Tests finden Sie unter: src / test / java / org / terracotta / Maven / plugins / tc /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top