Uygun entegrasyon testleri oluşturmanızı ve maven oluşturma sırasında entegrasyon testleri yapmak için aşağıdaki kurulumu kullanmamızı öneririm.
Tomcat'i indirmek veya deponuzdan bir artifakt kullanmanız gerekiyorsa aşağıdaki bölümü kullanabilirsiniz.
<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>
<extractDir>${project.build.directory}/extract/</extractDir>
<downloadDir>${project.build.directory}/download/</downloadDir>
</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.tomcat.ajp.port>9008</cargo.tomcat.ajp.port>
</properties>
</configuration>
</configuration>
sonraki kısmı başlangıç kullanılır ve (aynı zamanda iskelesi ile çalışan) verilen tomcat içine uygulamayı dağıtmak.
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
iyi şey app-it olarak adlandırabileceğimiz ayrı maven modüle yapılandırma vb bu tür koymaktır (:
<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>
ve tabii
nihayet aracılığıyla başlatılan sunucuyu durdurmak için entegrasyon testi için). entegrasyon test aşamasında çalışan ve yukarıdaki yapılandırma başlar edilecek yaşam döngüsü kontrol ise test tam devri sadece
mvn verify
tarafından çağrılabilir. Ancak, tümleştirme sınamalarının çalışmasını sağlamak için maven-failsafe-plugin'u yapılandırmanız önemlidir. Bu konuda ayrıntılı açıklaması Ne yapabilirsiniz http://tomcat.apache.org/maven-plugin-2.0/archetype.html bkz Apache'den erkek kedi maven eklenti ile bir arketip oluşturmaktır Maven Unit- and Integration Test Guide
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</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>
Neden gömülü tomcat bakamıyor http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/startup/Embedded.html –
[Howto embed Tomcat 6?] 'nın olası bir kopyası (http://stackoverflow.com/questions/640022/howto-embed-tomcat-6) –
@ArunPJohny: Bu, tam olarak aradığım şey oldu - harika çalıştı! Eğer (ya da isteyen herkes) bir cevap olarak koyduysanız, bunu kabul edeceğim :) –