Je veux exécuter le test de selenium avec maven comme partie de la construction, donc voici ma configuration :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
</plugin>
<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.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.1.4</version>
<configuration>
<wait>false</wait>
<container>
<containerId>tomcat7x</containerId>
<home>${env.CATALINA_HOME}</home>
<timeout>300000</timeout> <!-- 5 minutes -->
</container>
<configuration>
<type>standalone</type>
<home>target/tomcat7x</home>
</configuration>
<properties>
<cargo.jvmargs>-XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled</cargo.jvmargs>
</properties>
</configuration>
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
<goal>deploy</goal>
</goals>
</execution>
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>selenium-maven-plugin</artifactId>
<executions>
<execution>
<id>start</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start-server</goal>
</goals>
<configuration>
<background>true</background>
<logOutput>true</logOutput>
</configuration>
</execution>
<execution>
<id>stop</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop-server</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8</version>
<configuration>
<junitArtifactName>
org.junit:com.springsource.org.junit
</junitArtifactName>
<excludes>
<exclude>**/unit/*Test.java</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<excludes>
<exclude>none</exclude>
</excludes>
<includes>
<include>**/integration/*Test.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
ce qui se passe est le suivant :
- war est créé.
- La classe de test d'intégration s'exécute (ouverture du navigateur, puis fermeture du navigateur).
- Le serveur Tomcat démarre et déploie l'application.
- PROBLÈME : Après le déploiement, j'obtiens java.lang.OutOfMemoryError : Espace PermGen bien que j'aie augmenté la mémoire dans catalina.bat et dans la configuration de cargo, je peux voir que la guerre est déployée dans le dossier de sortie de cargo, donc je me demande pourquoi j'obtiens cette exception ?
UPDATE : LOGS
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.catalina.startup.SetAllPropertiesRule begin
[WARNING] [talledLocalContainer] WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'emptySessionPath' to 'true' did not find a matching property.
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
[WARNING] [talledLocalContainer] WARNING: [SetPropertiesRule]{Server/Service/Engine/Host} Setting property 'xmlValidation' to 'false' did not find a matching property.
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
[WARNING] [talledLocalContainer] WARNING: [SetPropertiesRule]{Server/Service/Engine/Host} Setting property 'xmlNamespaceAware' to 'false' did not find a matching property
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.coyote.AbstractProtocol init
[WARNING] [talledLocalContainer] INFO: Initializing ProtocolHandler ["http-bio-8080"]
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.coyote.AbstractProtocol init
[WARNING] [talledLocalContainer] INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.catalina.startup.Catalina load
[WARNING] [talledLocalContainer] INFO: Initialization processed in 600 ms
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.catalina.core.StandardService startInternal
[WARNING] [talledLocalContainer] INFO: Starting service Catalina
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.catalina.core.StandardEngine startInternal
[WARNING] [talledLocalContainer] INFO: Starting Servlet Engine: Apache Tomcat/7.0.22
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:51 PM org.apache.catalina.startup.HostConfig deployWAR
[WARNING] [talledLocalContainer] INFO: Deploying web application archive cargocpc.war
[WARNING] [talledLocalContainer] Jan 16, 2012 1:36:52 PM org.apache.catalina.startup.HostConfig deployWAR
[WARNING] [talledLocalContainer] INFO: Deploying web application archive MyAPP.war
[WARNING] [talledLocalContainer] java.lang.OutOfMemoryError: PermGen space
[WARNING] [talledLocalContainer] Exception in thread "main" java.lang.OutOfMemoryError: PermGen space
[WARNING] [talledLocalContainer] at java.lang.Throwable.getStackTraceElement(Native Method)
[WARNING] [talledLocalContainer] at java.lang.Throwable.getOurStackTrace(Throwable.java:591)
[WARNING] [talledLocalContainer] at java.lang.Throwable.printStackTrace(Throwable.java:462)
[WARNING] [talledLocalContainer] at java.lang.Throwable.printStackTrace(Throwable.java:451)
[WARNING] [talledLocalContainer] at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:469)