Java heap space dans les tests unitaires lancés par Maven
Par philippe voncken, lundi 9 novembre 2009 à 18:08 :: Java :: #140 :: rss
Si vos tests unitaires ne passent plus et que dans les logs vous voyez Java heap space, cela veut dire que vos tests dépassent la limite d'allocation mémoire fixé par la JVM.
Eclipse
Dans le cas des tests unitaires lancés directement dans Eclipse, vous devez rajouter l'option -Xmx512m dans les arguments de la Jvm (de mémoire: Run configuration -> cliquez sur votre test et ajoutez l'option dans le cadre argument Jvm) j'en ai déjà parlé sur un billet précédent d'ailleurs.
Maven
Cette configuration permet de faire passer le test sous Eclipse mais les tests ne passent toujours pas lorsqu'ils sont lancés par Maven. Pour cela l'ajout de l'option Xmx dans la variable d'environnement MVN_OPTIONS ne fonctionne pas. La raison est que c'est le plugin surfire qui gère la configuration de l'allocation mémoire et qu'il ne prend pas en compte cette derniere.
Voici donc ce qu'il faut rajouter dans le POM pour que vos tests unitaires n'aient plus de problème de mémoire:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>-Xmx512m</argLine> </configuration> </plugin>
Attention, si vous n'avez pas déclaré le plugin maven-surefire-plugin il faut que vous le fassiez afin de fixer la valeur de configuration argLine. Sinon Maven utilisera la configuration par défaut.
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.