【发布时间】:2016-10-10 18:00:13
【问题描述】:
我总共有 2799030 参数存储在 Iterable<Object[]> 中,我期待 junit 构建/启动这些测试。但它只是在加载Iterable<Object[]> 中的所有参数后立即挂起 - 请参见下面的屏幕截图:
它适用于少量参数(5000-10000)。我还尝试使用更高的 JVM 内存运行 (-Xms1024M -Xmx4096M)
更新:我还尝试从 CLI 而不是 IDE 运行,从下面的错误看来我应该使用更多内存运行或更改我的设计以小批量运行。 - 想法?
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
【问题讨论】:
标签: java junit junit4 parameterized