質問

JUnit テストを実行すると、常に次のエラーが発生するようです。

Eclipse のメモリ不足エラー:ヒープスペース

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で実行されます。だから、Eclipseの1メモリ不足とではありませんそのVMである。
あなたは、テストの実行構成のテストVMの設定を変更することができます。
あなたは、実行コンフィギュレーションに行き、その後、引数の下で、あなたはVM引数を設定することができます。

他のヒント

@Thijs Woutersの応答に加えて、Eclipseでこの問題を解決するには、次のことを行いました。

  • JUnit に新しい実行構成を追加しました ([実行] > [実行構成] > [JUnit] > [新規])
  • 必要に応じて、引数タブ内で VM 引数を「-Xms64m -Xmx256m」以上に設定します。

あなたはおそらくあなたのJUnitテストでのメモリリークを持っています。一般的な落とし穴はこれです:JUnitはのためにそれですべてのテストメソッドをTestCaseクラスの新しいインスタンスを作成します。のとJUnitが終了するまで、すべてのインスタンス変数は、周りに保持されます。それは意味:あなたは50の試験方法とあなたのsetUp()メソッドで1MBのオブジェクトグラフで初期化されたインスタンス変数とTestCaseクラスを持っている場合、そのTestCaseクラスは、50メガバイトのヒープ領域が必要になります。

編集をのみ、上記の問題は、JUnitの古いバージョンの存在、私はそれはJUnitの4で修正されたと思います。

私は、自動的にあなたのためのJUnitランチャー上のヒープサイズを設定しますEclipse用のプラグインをリリースしました。あなたは http://code.google.com/p/junitlaunchfixer/するからそれを得ることができますこれは、Eclipseエウロパ、ガニメデとガリレオで動作します。

私は私の問題への解決策を見つけた - それは他の人を助けるかもしれない;)私は私がしなければならなかったものではありません、私は日食を介して実行私のプログラム()の、Eclipseアプリケーションのヒープサイズを大きくして、ヒープ・サイズを大きくした時私のプログラムを実行する前に、実行コマンドを変更されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top