【Gradle测试】OOM问题解决方案

本文描述了在开发过程中遇到的Gradle测试因内存溢出(OOM)问题,通过调整maxHeapSize和forkEvery属性提供了两种解决方案。资源充足时增大内存,资源受限时采用频繁重启进程的方式,确保每个测试类有独立内存空间。
摘要由CSDN通过智能技术生成

概要

分享开发过程中遇到的Gradle测试OOM问题的解决方案。

问题场景

当运行Gradle测试的时候,如果测试用例比较多,并且运行过程中创建的对象所占用的内存超过了Gradle测试默认的最大内存,则会发生OOM。

问题复现

由于本地开发环境没有那么多测试用例,所以为了复现问题,我限制了Gradle测试的最大堆内存为30m。

在这里插入图片描述

解决方案

我一共找到了两种解决方案。

  1. 如果资源充足,可以适当修改maxHeapSize属性的值。
  2. 如果资源不充足,可以设置forkEvery属性,它的含义就是每运行多少个测试类,就重新启动一个测试进程运行其他的测试类。
    如果forkEvery设置成1,maxHeapSize设置成30m,这意味着每一个测试类都有30m的最大堆内存使用空间,如果不设置forkEvery属性,那么所有的测试类共享这30m的最大堆内存。

当我把forkEvery设置成1之后,所有测试都通过了。
在这里插入图片描述

相关资源

forkEvery和maxHeapSize官方文档地址: gradle test

forEvery:
在这里插入图片描述

maxHeapSize:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值