【问题标题】:OutOfMemoryError when trying to get test coverage with Jacoco尝试使用 Jacoco 获得测试覆盖率时出现 OutOfMemoryError
【发布时间】:2014-01-30 01:25:22
【问题描述】:

我有一个大约 60K 行代码的 android 项目,我们使用 gradle 构建应用程序并使用 robolectric 运行单元测试。我们最近应用了 jacoco 插件来获取单元测试的覆盖率数据,但是,在大约 140 次测试之后,其余的测试开始失败并出现 OutOfMemoryError 异常。

我尝试使用 gradle.properties 来更改 JVM 的堆大小,但似乎没有帮助。

任何帮助将不胜感激。非常感谢。

【问题讨论】:

  • 你找到解决办法了吗?

标签: android gradle code-coverage android-gradle-plugin jacoco


【解决方案1】:

您是否尝试过以下操作:

  1. 在用户的 ~/.bash_profile 文件中设置以下内容

    导出 GRADLE_OPTS="-XX:MaxPermSize=512m"

  2. 在 GRADLE_HOME/bin/gradle 可执行(shell 脚本)文件中,将以下行更改为:

    DEFAULT_JVM_OPTS="$JAVA_OPTS $GRADLE_OPTS"
    

    以上假设,您也设置了一些 JAVA xxx mem 变量

  3. 包括平行叉等。

      test {
     maxParallelForks = 5
     forkEvery = 50
     ignoreFailures = true
    
     // Send HTML reports and xml results files to a custom user defined folder instead of default    
     testReportDir = file("$buildDir/reports/tests/UnitTests")
     testResultsDir = file("$buildDir/test-results/UnitTests")
    
     testLogging.showStandardStreams = true
    
     onOutput { descriptor, event ->
         logger.lifecycle("Test: " + descriptor + " produced standard out/err: " + event.message )
     }
    

    }

看看,这有帮助吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2014-05-11
    • 2018-07-01
    • 1970-01-01
    • 2016-04-07
    相关资源
    最近更新 更多