Chez Netapsys, nous mettons un point d'orgue à assurer la qualité de nos réalisations. Dans nos développements, les tests y sont pour beaucoup. Nous utilisons, pour les exécuter, le plugin Eclipse Junit. Et, dans le cadre de l'industrialisation de nos projets, ces tests sont lancés via Maven grâce au plugin maven-surefire-plugin.
Problème :
Récemment j'ai eu besoin de booster la mémoire de la JVM pour lancer un test assez gourmand en ressources. Et là, problème : alors que mon test passait sans problème sur Eclipse, il déclenchait à chaque fois une exception java.lang.OutOfMemoryError: Java heap space lorsqu'il était lancé via Maven, et ce malgré un paramétrage identique au niveau variables d'environnement.
Solution :
Après quelques recherches, nous avons fini par trouver, mon chef de projet et moi, la solution : ces options ne sont pas prises en compte par le plugin maven-surefire-plugin. Elles doivent effectivement être répétées dans la configuration du plugin (ie. dans le pom.xml).
<plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>-Xmx512m</argLine> </configuration> </plugin>