使用JUnit ant任务从Centos 5.4上的CruiseControl运行我的单元测试
我的jUnit Task forks运行测试,其中大部分工作正常,但是我一直遇到JVM崩溃的间歇性故障,总是出现同样的错误:
[junit]致命:堆叠尺寸太小。使用'ulimit -s'来增加默认堆栈大小。
我使用ulimit将堆栈大小加倍,崩溃继续发生。 JUnit任务运行大约100个不同的jUnit测试类,并且JVM崩溃可能发生在任何一个中,因此我不认为该行为是由于任何特定的测试。
ulimit -a告诉我堆栈大小是32768 kb(我已经提升了几次才能达到这一点),这对我来说似乎很大。
运行sun jdk 1.3
任何人都有任何线索,或建议什么是合理的堆栈大小。
从来没有提到过增加java堆栈大小(-Xss) - 但我还是尝试了相同的结果。
戴夫
答案 0 :(得分:3)
你添加了这样的东西:
<jvmarg line="-Xss512k"/>
在ant脚本中或者只是增加ant进程本身的堆栈(当然,假设您正在分叉测试而不是在VM的ant实例中运行它们。)
答案 1 :(得分:0)
我对这件事的想法是,不知何故事情并没有从内部堆栈弹出,我意识到这是显而易见的。由于你说它在整个测试过程中任意失败,因此有点难以追踪。这些测试用例中有多少是递归的?还有多少货叉正在执行?