Интеграционное тестирование в многомодульном проекте Maven
У меня есть многомодульный проект, и теперь я хочу добавить в него интеграционные тесты, я хочу использовать грузовой плагин, чтобы запустить tomcat и развернуть там свои артефакты, а затем тестировать до конца, используя селен.
Я просмотрел выходные данные консоли maven для моих текущих сборок и верных модульных тестов, а затем прочитал документы maven для плагина отказоустойчивости. Это выглядит нормально, но похоже, что жизненный цикл для каждого модуля - это то, что журналы показывают, что модуль затем тестируется. построен до перехода на следующий модуль.
Я правильно понимаю?
Поскольку мое приложение состоит из войны, которая является только внешним интерфейсом, который затем подключается к приложению API бэкэнда, которое представляет собой API отдыха, который подключается к базе данных, мне нужно, чтобы оба файла войны были развернуты в Cargo одновременно на этапе тестирования интеграции.,
Кто-нибудь знает, как это сделать, или может указать мне учебник, который делает интеграционные тесты между несколькими файлами войны в tomcat?
Спасибо
1 ответ
Жизненный цикл плагина Maven выглядит следующим образом:
- проверить pom.xml
- инициализировать
- генерировать-источники
- Процесс-источники
- генерировать-ресурсы
- Процесс-ресурсы
- компилировать
- Процесс-классы
- генерировать-тест-источников
- Процесс-тест-источники
- генерировать-тест-ресурсы
- Процесс-тест-ресурсы
- тест-компиляция
- Процесс-тест-классы
- тестовое задание
- подготовить-пакет
- пакет
- Предварительная интеграция-тест
- Интеграция испытаний
- после интеграции тест
- проверить
- устанавливать
- развертывание
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.