JUnitテストを実行するとき、私はいつもこのエラーに遭遇するようです:
Eclipse outOfMemoryError:ヒープ領域
私はJConsoleでEclipseを監視しており、ヒープメモリのピークは約150MBです。ヒープメモリを1GBに設定しました。
Eclipseの起動時に次の引数を使用しています。
-vm "C:\ Program Files\Java\jre1.5.0_08\bin\javaw.exe" -vmargs -Xmx1024M -XX:MaxPermSize = 128M -Dcom.Sun.management.jmxremote .port = 8999 -Dcom.Sun.management.jmxremote.ssl = false -Dcom.Sun.management.jmxremote.authenticate = false
誰かがこの問題を引き起こしている可能性があることを知っていますか? JUnitテストを実行しているときにのみ発生します。
Junitテストは、Eclipse IDEとは異なるvmで実行されます。したがって、メモリが不足しているのはvmであり、Eclipseのvmではありません。
テストの実行構成でテストvmの設定を変更できます。
実行構成に移動し、引数の下で、vm引数を設定できます。
@Thijs Wouters応答に加えて、Eclipseでこの問題を修正するために、私は次のことを行いました。
JUnitテストでメモリリークが発生している可能性があります。一般的な落とし穴は次のとおりです。JUnitは、すべてのテストメソッドのTestCaseクラスの新しいインスタンスを作成しますそして、すべてのインスタンス変数は、JUnitまで保持されます終了します。つまり、50個のテストメソッドを持つTestCaseクラスと、setUp()メソッドで1MBのオブジェクトグラフで初期化されるインスタンス変数がある場合、そのTestCaseクラスには50MBのヒープスペースが必要になります。
編集:上記の問題は古いバージョンのJUnitにのみ存在し、JUnit 4で修正されたと思います。
JUnitランチャーのヒープサイズを自動的に設定するEclipse用のプラグインをリリースしました。 http://code.google.com/p/junitlaunchfixer/ から入手できます。EclipseEuropa、Ganymede、Galileoで動作します。
私は問題の解決策を見つけました-それは他の人を助けるかもしれません;)私が(Eclipseを介して実行した)プログラムではなく、Eclipseアプリケーションのヒープサイズを増やしていました。プログラムを実行する前の実行コマンド。