在测试时定义 grails 内存设置
Posted
技术标签:
【中文标题】在测试时定义 grails 内存设置【英文标题】:define grails memory settings while testing 【发布时间】:2021-03-24 20:50:00 【问题描述】:我有一个带有集成测试的 grails 4.0.2 应用程序,需要大量内存。
当前,当我运行测试时,它失败并显示:java.lang.OutOfMemoryError: GC 开销限制超出。在旧 grails 中,您可以在 build.config 中定义 grails.project.fork。
此外,我尝试使用所需的内存配置指定 GRAILS_OPTS 但这给了我消息 -> 忽略选项 MaxPermSize=512m; 8.0 中移除了支持
我也尝试过将 build.gradle 调整为以下
bootRun
ignoreExitValue true
jvmArgs(
'-Dspring.output.ansi.enabled=always',
'-noverify',
'-XX:TieredStopAtLevel=1',
'-Xmx2048m')
sourceResources sourceSets.main
String springProfilesActive = 'spring.profiles.active'
systemProperty springProfilesActive, System.getProperty(springProfilesActive)
tasks.withType(GroovyCompile)
configure(groovyOptions)
forkOptions.jvmArgs = ['-Xmx2048m']
为测试 grails 4 指定内存设置的正确方法是什么?
【问题讨论】:
【参考方案1】:我在将 Grails 3 应用程序移植到 4 时遇到了同样的问题,以下为我解决了这个问题。
test
jvmArgs('-Xmx4g', '-XX:+UseG1GC')
integrationTest
jvmArgs('-Xmx4g', '-XX:+UseG1GC')
【讨论】:
以上是关于在测试时定义 grails 内存设置的主要内容,如果未能解决你的问题,请参考以下文章
内存数据库中的 H2:使用 JDBC 设置时区? Java 单元测试