Java11 中的 JUnit5 单元测试用例,当我们运行 gradle 测试来测试整个 Junit 测试用例时,我们收到 OutOfMemoryError 异常。个别测试用例运行良好。
testImplementation 'org.springframework.boot:spring-boot-starter-test:2.7.14'
test {
useJUnitPlatform()
}
基本上,Gradle 并行运行所有测试类。 Java11默认堆内存大小为256MB。这不足以并行运行所有测试类。这会导致“Java 内存不足”错误。我们可以通过添加以下代码来增加测试运行中的堆内存来解决此问题。如果测试用例更多,我们需要增加堆大小比我给出的更多。
升级到JAVA17后就不会再遇到这个问题了。因为,java17会将物理内存的1/4作为堆内存
依赖项.gradle
testImplementation 'org.springframework.boot:spring-boot-starter-test:2.7.14'
test {
minHeapSize = "256m" // initial heap size
maxHeapSize = "1024m" // maximum heap size
useJUnitPlatform()
}