Как вы создаете автоматические тесты плагина Maven с помощью JUnit?

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

Есть ли у кого-нибудь лучшие идеи?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
2 434
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам нужно использовать 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 /

Другие вопросы по теме