2016-05-24 162 views
2

我试图使用Gradle任务为Android Studio项目创建Jacoco报告。我想从报告中排除一些未经测试的文件,但它们仍然出现在网络报告中。(Android - Gradle)Jacoco覆盖率不排除某些类文件

这是在摇篮任务,我定义:

apply plugin: 'jacoco' 

jacoco { 
    // Use this version for upper ones are broken (with Gradle) 
    // https://github.com/jacoco/jacoco/issues/288 
    toolVersion = "0.7.1.201405082137" 
} 

def coverageSourceDirs = [ 
     'src/main/java/....', 
] 

task createJacocoReport(type: JacocoReport) { 
    println ":${project.name}:Generating Jacoco reports" 
    group = "Reporting" 
    description = "Generate Jacoco coverage reports after running tests." 
    reports { 
     xml.enabled = true 
     xml.destination = "${buildDir}/jacocoReport.xml" 
     csv.enabled = true 
     csv.destination = "${buildDir}/jacocoReport.csv" 
     html.enabled = true 
     html.destination = "${buildDir}/jacocoHtml" 
    } 
    classDirectories = fileTree(dir: './build/intermediates/classes/release', 
      excludes: ['**/R$*.class', 
         '**/R.class', 
         '**/android/**/*.class', 
         '**/google/**/*.class', 
         '**/Activities/*.class', 
         '**/Fragments/*.class', 
         '**/Views/*.class', 
         '**/NativeImplementations/*.class', 
         '**/BuildConfig.class', 
         '**/CameraDefaultConfig.class']) 

    sourceDirectories = files(coverageSourceDirs) 
    executionData = files("./build/jacoco/testReleaseUnitTest.exec") 
} 

我推出这个任务:

check.finalizedBy(createJacocoReport) 

任何人有发生的事情的想法?我正在使用Android Studio 2.1.1和Gradle插件2.1.0。

谢谢!

回答

1

我已经解决了这个问题,用包含列表替换排除列表。即使我不明白这是什么原因,如果有人有一个想法...

+0

你可以请你如何包括列表看起来像?你还在使用dir属性吗?谢谢 – sttaq

+0

我相信原因在于,将'excludes'中的内容视为覆盖率为0%,并且这会使您的总百分比减少。 – Thunderforge

相关问题