specs2的JVM内存设置

时间:2013-03-20 10:22:39

标签: sbt specs2 spray

使用specs2spray-testkit,我的一些较大的验收风格测试中,SBT内存不足。我有10个演出或RAM可用,目前我开始SBT(使用SBT extras script),MaxPermSize为512m,Xms为1024m,Xmx为2g。

验收测试按特定顺序贯穿客户的整个业务流程,因此将验收测试分成多个较小的测试并不容易。

任何想法如何更好地配置我的环境,或者我应该注意的问题都将受到赞赏。

对于它的价值,我在Ubuntu下使用Oracle Java,该项目使用Scala 2.10,sbt 0.12.2,使用specs2 1.14喷涂1.1-M7。

在测试之外运行系统时,或者使用较小的测试时,一切都像发条一样运行。只有在较大的测试中,事情才会变得坚果。

2 个答案:

答案 0 :(得分:6)

您可以做的一件事是分叉测试,您可以直接在build.sbt中设置内存设置:

fork in Test := true

javaOptions in Test += "-Xmx2048m" // we need lots of heap space

这意味着测试不依赖于您使用SBT extras脚本运行,并且设置不会影响sbt本身。您还可以设置各种其他选项(请参阅Forking),包括更改工作目录,甚至是要使用的JRE。

答案 1 :(得分:2)

我怀疑你在使用specs2不可变样式遇到了指数问题。解决方案只是添加更多内存或将测试破碎成更小的块。更多信息在这里:

http://www.artima.com/articles/compile_time.html