junit参数化测试可以处理多少个最大参数?

时间:2016-10-10 18:00:14

标签: java junit junit4 parameterized

我在2799030中存储了Iterable<Object[]>个参数,我希望junit能够构建/启动这些测试。但它只是在加载Iterable<Object[]>中的所有参数后立即挂起 - 请参见下面的屏幕截图:

hang here

使用少量参数(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

1 个答案:

答案 0 :(得分:0)

更改设计器执行测试

例如:

  • 在课堂测试中制作10个方法。
  • 每个方法运行10000个项目。
  • 并行测试。
  • 在消费时找到或做物品。

如果你不能这样做。 你需要更多的记忆来进行测试,