在Eclipse中增加JUnit测试的堆栈大小

时间:2014-10-22 21:24:56

标签: java eclipse junit junit4 stack-size

我遇到一个问题,每当我尝试运行JUnit测试时,它们都会因StackOverflowError而失败。我的问题是我有一个递归函数,遍历一个非常大的图来查找所有可能的路径。我还有一个递归计数器,它计算最深的递归是什么,并且大多数图表位于3000到4000之间。当我运行我的JUnit测试时,StackOverflowError总是恰好发生在2300,无论VM的参数是什么集。

我已经尝试-Xss1m-Xss10m,但无效,StackOverflowError仍然出现在相同的递归深度。我已经在互联网上搜索了一下,发现我还要设置正在运行的eclipse应用程序的堆栈大小。所以我做了但又无济于事。

这里有几个截图,我已经尝试设置堆栈大小: enter image description here

enter image description here

enter image description here

我错过了哪些想法?

1 个答案:

答案 0 :(得分:0)

现在回答这个问题有点晚了......

首先解决方案:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <!-- look here -->
                <argLine>-Xss18m</argLine>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.surefire</groupId>
                    <artifactId>surefire-junit47</artifactId>
                    <version>2.19.1</version>
                </dependency>
            </dependencies>
        </plugin>

检查<!--look here >行,我不知道如何在代码块中突出显示它。

您的解决方案无效的原因: junit不会使用您正在修改的JVM。

如果你在这个类中编写一个main函数,它将使用它。