Интеграционное тестирование в многомодульном проекте Maven

У меня есть многомодульный проект, и теперь я хочу добавить в него интеграционные тесты, я хочу использовать грузовой плагин, чтобы запустить tomcat и развернуть там свои артефакты, а затем тестировать до конца, используя селен.

Я просмотрел выходные данные консоли maven для моих текущих сборок и верных модульных тестов, а затем прочитал документы maven для плагина отказоустойчивости. Это выглядит нормально, но похоже, что жизненный цикл для каждого модуля - это то, что журналы показывают, что модуль затем тестируется. построен до перехода на следующий модуль.

Я правильно понимаю?

Поскольку мое приложение состоит из войны, которая является только внешним интерфейсом, который затем подключается к приложению API бэкэнда, которое представляет собой API отдыха, который подключается к базе данных, мне нужно, чтобы оба файла войны были развернуты в Cargo одновременно на этапе тестирования интеграции.,

Кто-нибудь знает, как это сделать, или может указать мне учебник, который делает интеграционные тесты между несколькими файлами войны в tomcat?

Спасибо

1 ответ

Жизненный цикл плагина Maven выглядит следующим образом:

  1. проверить pom.xml
    • инициализировать
  2. генерировать-источники
    • Процесс-источники
  3. генерировать-ресурсы
    • Процесс-ресурсы
  4. компилировать
    • Процесс-классы
  5. генерировать-тест-источников
    • Процесс-тест-источники
  6. генерировать-тест-ресурсы
    • Процесс-тест-ресурсы
  7. тест-компиляция
    • Процесс-тест-классы
  8. тестовое задание
  9. подготовить-пакет
    • пакет
  10. Предварительная интеграция-тест
  11. Интеграция испытаний
  12. после интеграции тест
  13. проверить
  14. устанавливать
  15. развертывание

org.mockserver может использоваться для вышеупомянутой цели тестирования нескольких военных файлов.

Чтобы запустить MockServer как часть вашей сборки, добавьте следующий плагин в ваш pom.xml:

<plugin>
    <groupId>org.mock-server</groupId>
    <artifactId>mockserver-maven-plugin</artifactId>
    <version>3.10.7</version>
    <configuration>
        <serverPort>1080</serverPort>
        <proxyPort>1090</proxyPort>
        <logLevel>DEBUG</logLevel>
        <initializationClass>org.mockserver.maven.ExampleInitializationClass</initializationClass>
    </configuration>
    <executions>
        <execution>
            <id>process-test-classes</id>
            <phase>process-test-classes</phase>
            <goals>
                <goal>start</goal>
            </goals>
        </execution>
        <execution>
            <id>verify</id>
            <phase>verify</phase>
            <goals>
                <goal>stop</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Это запустит MockServer во время фазы процесса-тестирования-классов и остановит MockServer во время фазы проверки. Для получения более подробной информации о фазах сборки Maven см.: Введение в жизненный цикл сборки.

Это гарантирует, что любые интеграционные тесты, которые вы запускаете на этапах тестирования или тестирования интеграции, могут использовать MockServer на указанном порту.

Полный пример демонстрирует интеграцию MVC.

Диаграмма фаз жизненного цикла Maven

Цели плагина могут быть привязаны к фазе жизненного цикла Рекомендации

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