Самое важное, что вам нужно сделать, - это поместить вашу интеграцию в отдельный модуль maven, назовите его как угодно (для тестирования интеграции). Переведите грузовой плагин в фазу интеграции:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<wait>false</wait>
<container>
<containerId>tomcat${tomcat.major}x</containerId>
<zipUrlInstaller>
<url>http://archive.apache.org/dist/tomcat/tomcat-${tomcat.major}/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.tar.gz</url>
<downloadDir>${project.build.directory}/cargo/download/</downloadDir>
<extractDir>${installDir}</extractDir>
</zipUrlInstaller>
<output>${project.build.directory}/tomcat${tomcat.major}x.log</output>
<log>${project.build.directory}/cargo.log</log>
</container>
<configuration>
<home>${project.build.directory}/tomcat-${tomcat.version}/container</home>
<properties>
<cargo.logging>high</cargo.logging>
<cargo.servlet.port>9080</cargo.servlet.port>
</properties>
</configuration>
</configuration>
добавить блоки исполнения:
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
<goal>deploy</goal>
</goals>
<configuration>
<deployer>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>mod-war</artifactId>
<type>war</type>
<pingURL>http://localhost:9080/mod-war</pingURL>
<pingTimeout>30000</pingTimeout>
<properties>
<context>mod-war</context>
</properties>
</deployable>
</deployables>
</deployer>
</configuration>
</execution>
и часть отключения:
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
Приведенная выше конфигурация описывает полный цикл тестирования интеграции с загрузкой tomcat, распаковкой дистрибутива tomcat, развертыванием файла war (зависимый проект в tomcat), запуском веб-приложения и, наконец, остановкой Tomcat. Что вам нужно изменить для своих целей, так это то, что у вас нет начальной фазы, потому что у вас уже есть работающий контейнер. Как это сделать, описано в грузовой документации . Наконец, вы должны поместить свои интеграционные тесты в папку src / test / java модуля тестов интеграции и не забудьте сконфигурировать плагин maven-surefire, как показано ниже:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
<configuration>
<printSummary>true</printSummary>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
Вы можете посмотреть полный пример здесь . Описание этого дано здесь .