尝试使用Jacoco获取测试覆盖率时的OutOfMemoryError

时间:2014-01-30 01:25:23

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

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

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

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

1 个答案:

答案 0 :(得分:0)

您是否尝试过以下操作:

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

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

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

    DEFAULT_JVM_OPTS="$JAVA_OPTS $GRADLE_OPTS"
    

    以上假设您正在设置一些JAVA xxx内存变量

  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 )
     }
    

    }

  4. 看,这有用吗?