2014-01-30 82 views
1

我有一個約60K行代碼的Android項目,我們使用gradle構建應用程序並使用robolectric運行單元測試。我們最近應用jacoco插件來獲取單元測試的覆蓋率數據,但經過大約140次測試後,其餘測試開始因OutOfMemoryError異常而失敗。OutOfMemoryError試圖獲得雅可科測試覆蓋率

我試圖玩gradle.properties來改變JVM的堆大小,但它似乎沒有幫助。

任何幫助將不勝感激。非常感謝。

回答

0

你有沒有嘗試以下方法:

  1. 設置在用戶的〜/ .bash_profile文件中以下

    出口GRADLE_OPTS = 「 - XX:MaxPermSize參數=512米」

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

    }

看,如果這有助於?