2016-10-10 1 views
2

私は合計2799030のパラメータをIterable<Object[]>に格納しました。私はjunitがこれらの多くのテストを構築/開始することを期待していました。junit perameterizedテストで扱える最大パラメータ数はいくつですか?

hang here

それは少数のパラメータ(5000から10000)で正常に動作します:次の画面が撃た見る - それはちょうどIterable<Object[]>にすべてのパラメータをロードした後にハングアップします。私はまた、より高いJVMのメモリを使用して実行しようとした(-Xms1024M -Xmx4096M

アップデート:私は小さなバッチで実行するために多くのメモリで実行するか、自分のデザインを変更する必要がありますようにそれはそう下に私も、エラーから、代わりにIDEのCLIから実行してみました。 - 考え?

There was 1 failure: 
1) initializationError(test.TestBuilder$buildTestSuites) 
java.lang.OutOfMemoryError: GC overhead limit exceeded 
     at java.util.Arrays.copyOf(Unknown Source) 
     at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source) 
     at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) 
     at java.lang.AbstractStringBuilder.append(Unknown Source) 
     at java.lang.StringBuilder.append(Unknown Source) 
     at java.lang.reflect.Method.specificToStringHeader(Unknown Source) 
     at java.lang.reflect.Executable.sharedToString(Unknown Source) 
     at java.lang.reflect.Method.toString(Unknown Source) 
     at org.junit.internal.MethodSorter$2.compare(MethodSorter.java:33) 
     at org.junit.internal.MethodSorter$2.compare(MethodSorter.java:28) 
     at org.junit.internal.MethodSorter$1.compare(MethodSorter.java:20) 
     at org.junit.internal.MethodSorter$1.compare(MethodSorter.java:14) 
     at java.util.TimSort.countRunAndMakeAscending(Unknown Source) 
     at java.util.TimSort.sort(Unknown Source) 
     at java.util.Arrays.sort(Unknown Source) 
     at org.junit.internal.MethodSorter.getDeclaredMethods(MethodSorter.java:56) 
     at org.junit.runners.model.TestClass.scanAnnotatedMembers(TestClass.java:65) 
     at org.junit.runners.model.TestClass.<init>(TestClass.java:57) 
     at org.junit.runners.ParentRunner.createTestClass(ParentRunner.java:88) 
     at org.junit.runners.ParentRunner.<init>(ParentRunner.java:83) 
     at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65) 
     at org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters.<init>(BlockJUnit4ClassRunnerWithParameters.java:27) 
     at org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersFactory.createRunnerForTestWithParameters(BlockJUnit4ClassRunnerWithParametersFactory.java:16) 
     at org.junit.runners.Parameterized.createRunnersForParameters(Parameterized.java:313) 
     at org.junit.runners.Parameterized.<init>(Parameterized.java:248) 
     at pps.test.Parallelized.<init>(Parallelized.java:50) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
     at java.lang.reflect.Constructor.newInstance(Unknown Source) 
     at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
     at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 

FAILURES!!! 
Tests run: 1, Failures: 1 

答えて

0

変更します。たとえば、デザイナーの実行テスト

  • があなたのクラスのテストで10個のメソッドを作ります。
  • 各メソッドは10000個のアイテムを実行します。
  • パラレルテストで実行します。
  • 消費時に商品を検索または実行します。

これができない場合は、 あなたのテストにはさらに多くのメモリが必要です

関連する問題