Si vous manquez d'espace de tas pendant l'exécution de test JUnit infaillible (ou de sécurité intégrée), la modification de MAVEN_OPTS peut ne pas vous aider. J'ai continué à essayer différentes configurations dans MAVEN_OPTS sans succès jusqu'à ce que je trouve ce message qui corrige le problème.
Fondamentalement, les JUnits se retrouvent dans leur propre environnement et ignorent les paramètres de MAVEN_OPTS. Vous devez configurer surefire dans votre pom pour ajouter plus de mémoire pour les JUnits.
J'espère que cela peut faire gagner du temps à quelqu'un d'autre!
Edit: Copier la solution du blog de Keith Chapman juste au cas où le lien se romprait un jour:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>-Xms256m -Xmx512m</argLine>
<testFailureIgnore>false</testFailureIgnore>
<skip>false</skip>
<includes>
<include>**/*IntegrationTestSuite.java</include>
</includes>
</configuration>
</plugin>
Mise à jour (31/05/2017): Merci à @johnstosh pour l'avoir signalé - le surefire a un peu évolué depuis que j'ai publié cette réponse. Voici un lien vers leur documentation et un exemple de code mis à jour (la ligne arg est toujours la partie importante pour cette question):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
<systemPropertyVariables>
<databaseSchema>MY_TEST_SCHEMA_${surefire.forkNumber}</databaseSchema>
</systemPropertyVariables>
<workingDirectory>FORK_DIRECTORY_${surefire.forkNumber}</workingDirectory>
</configuration>
</plugin>