2016-12-09 6 views
2

現在、4GBのRAMを搭載した32ビットのWindowsマシンで約100,000のテストを実行しようとしています。私は-usedefaultlisteners falseというコマンドでデフォルトのリスナーを無効にしており、カスタムリスナー/レポーターは設定されていません。ただし、スイートは、次のスタックトレースで失敗します。TestNGリスナー/レポーターが無効の場合でもOutOfMemoryError

Exception in thread "pool-2-thread-5" Exception in thread "pool-2-thread-7" java.lang.OutOfMemoryError: Java heap space 
java.lang.OutOfMemoryError: Java heap space 
Exception in thread "pool-2-thread-2" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "pool-2-thread-6" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "pool-2-thread-4" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 

それもリスナーなくて、TestNGの構成は4ギガバイトのRAM以上を必要とすることは可能ですか?

どのようなプロセスで大量のメモリが必要ですか?

これらのテストを実行するための最適化/回避策はありますか?

+1

'target/surefire-reports'の中で生成された確実なレポートを見ると、完全なスタックトレースが得られます。 – Tunaki

+0

あなたは 'parallel'でテストを実行していますか?もしそうなら、あなたは 'testng.xml'でどんな並列性を設定しましたか? – nullpointer

+0

私はtestng.xmlに 'parallel'設定を使用していませんが、threadPoolSize属性を使って15スレッドで実行するようにいくつかのテストを設定しました。 – ejang

答えて

1

ハードウェアに4GBのRAMが搭載されているということは、そのすべてがJVMヒープに使用されていることを意味しません。ヒープサイズは、パラメータ-Xmxで定義された最大値を持ちます。あなたのケースでは

、利用できる4ギガバイトで、私は、このオプションを使用してテストを実行しようとするだろう。これは、ヒープに最大2GBできるようになります

java -Xmx2g mytest 

関連する問題