Сначала вы должны поместить свои интеграционные тесты в один модуль. Предположим, что вы используете модуль A, а затем вы должны запустить фазу интеграционных тестов также на том же модуле, а не в другом модуле.
Вы можетеиспользуйте cargo-plugin для запуска сервера приложений на этапе предварительного тестирования, запустите ваши интеграционные тесты с помощью maven-failsafe-plugin и завершите работу сервера приложений во время пост-интеграционного тестирования через грузовой плагин.Ниже приведен фрагмент для настройки грузового плагина для запуска / остановки сервера Tomcat, но Cargo поддерживает также JBoss, Glassfish и т. Д.
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.5</version>
<configuration>
<wait>false</wait>
<container>
<containerId>tomcat${tomcat.major}x</containerId>
<zipUrlInstaller>
<url>http://www.apache.org/dist/tomcat/tomcat-${tomcat.major}/v${tomcat.version}/bin/apache-tomcat-${tomcat.version}.tar.gz</url>
<installDir>${installDir}</installDir>
</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>
<cargo.jvmargs>-DHUDSON_HOME=${project.build.directory}/hudson-storage</cargo.jvmargs>
</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>org.jvnet.hudson.main</groupId>
<artifactId>hudson-war</artifactId>
<type>war</type>
<pingURL>http://localhost:9080/hudson</pingURL>
<pingTimeout>60000</pingTimeout>
<properties>
<context>hudson</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>
Следующий фрагмент дает вам представление окак использовать плагин maven-surefire и плагин компилятора: в этом случае важно назвать интеграционные тесты (например, XYZ * IT.jav)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
Вам не нужен execплагин и т. д. или сценарий оболочки для запуска интеграционных тестов в maven.