I\'m running junit tests from an ant script. The tests run successfully so ant moves on to the the junitreport task to create the html report. This task is failing with a
This error has been raised in ANT bug 34342. The general consensus is that it's caused by excessive memory consumption in the XSLT used to generate the report, and it WON'T be fixed in ANT.
What has worked for me has been to increase the maximum heap size passed to ant, eg -Xmx3304m. As some of the other answers here mentioned, you can use ANT_OPTS to pass the maximum heap size to ant.
Regarding the actual maximum heap size value, it is recommended that it should be either 1/4th of physical memory or 1GB, whichever is smaller. You may need to go beyond the 1GB limit to avoid this memory error however. See Garbage Collector Ergonomics guide on the Oracle website.
you can use the ANT_OPTS environment variable to increase the heap size ant uses
The "maxmemory="###m
" appears to ONLY work if you use fork, If you aren't using fork (like I am) it doesn't get used, You have to use the ANT_OPTS
to change the heap.
You can use the maxmemory
set within junit
task itself.
<junit printsummary="yes" fork="true" haltonfailure="no" showoutput="yes" maxmemory="512m">
As the docs explain,
Maximum amount of memory to allocate to the forked VM. Ignored if fork is disabled. Note: If you get java.lang.OutOfMemoryError: Java heap space in some of your tests then you need to raise the size like maxmemory="128m"