Se stai esaurendo lo spazio heap durante l'esecuzione del test JUnit infallibile (o fail-safe), la modifica di MAVEN_OPTS potrebbe non aiutarti. Ho continuato a provare diverse configurazioni in MAVEN_OPTS senza fortuna finché non ho trovato questo post che ha risolto il problema.
Fondamentalmente le JUnit si inseriscono nel proprio ambiente e ignorano le impostazioni in MAVEN_OPTS. Devi configurare la sicurezza nel tuo pom per aggiungere più memoria per le JUnits.
Speriamo che questo possa far risparmiare tempo a qualcun altro!
Modifica: copia della soluzione dal blog di Keith Chapman nel caso in cui il collegamento si interrompesse un giorno:
<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>
Aggiornamento (31/5/2017): Grazie a @johnstosh per averlo sottolineato: la sicurezza si è evoluta un po 'da quando ho pubblicato questa risposta. Ecco un collegamento alla loro documentazione e un esempio di codice aggiornato (la riga arg è ancora la parte importante per questa domanda):
<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>