У меня есть (в основном) рабочий плагин, но поскольку его функция напрямую связана с проектом, который он обрабатывает, как вы разрабатываете модульные и интеграционные тесты для этого плагина. Лучшая идея, которая у меня была, - это создать проект интеграционного тестирования для плагина, который использует плагин в течение его жизненного цикла и имеет тесты, которые сообщают об успехе или неудаче плагинов при обработке данных.
Есть ли у кого-нибудь лучшие идеи?




Вам нужно использовать Maven-плагин-тестирование-жгут,
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<version>1.1</version>
<scope>test</scope>
</dependency>
Вы производите свои классы модульного теста из АннотацияMojoTestCase.
Вам нужно создать чистый POM, обычно в папке 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>
Используйте AbstractMojoTest.lookupMojo (String, File) (или один из других вариантов), чтобы загрузить Mojo для определенной цели и выполнить ее.
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
Я создал собственный плагин, к которому вы можете обратиться за разъяснениями http://ldap-plugin.btmatthews.com,
Если вы хотите увидеть несколько реальных примеров, плагин Terracotta Maven (tc-maven-plugin) содержит несколько тестов, которые вы можете просмотреть в кузнице с открытым исходным кодом.
Плагин находится по адресу: http://forge.terracotta.org/releases/projects/tc-maven-plugin/
И источник находится в svn по адресу: http://svn.terracotta.org/svn/forge/projects/tc-maven-plugin/trunk/
И в этом источнике вы можете найти некоторые актуальные тесты плагинов Maven по адресу: src / test / java / org / terracotta / maven / plugins / tc /