如何使用Gradle创建JaCoCo的xml报告

时间:2017-09-11 14:55:04

标签: android gradle android-gradle jacoco

我有Android项目 我正在尝试使用Gradle的JaCoCo代码覆盖。

这是我的JaCoCo配置:

apply plugin: 'jacoco'

project.afterEvaluate {

def buildTypes = android.buildTypes.collect { type -> type.name }
def productFlavors = android.productFlavors.collect { flavor -> flavor.name }

if (!productFlavors) productFlavors.add('')
productFlavors.each { productFlavorName -> buildTypes.each {
                      buildTypeName -> def sourceName, sourcePath
                      if (!productFlavorName) {
                      sourceName = sourcePath = "${buildTypeName}" }
else {
sourceName = "${productFlavorName}${buildTypeName.capitalize()}"
sourcePath = "${productFlavorName}/${buildTypeName}"
}

def testTaskName = "test${sourceName.capitalize()}UnitTest"

task "${testTaskName}Coverage" (type:JacocoReport, dependsOn: "$testTaskName") {
      group = "Reporting"
      description = "Generate Jacoco coverage reports on the ${sourceName.capitalize()} build."
      classDirectories = fileTree(
          dir: "${project.buildDir}/intermediates/classes/${sourcePath}",
          excludes: [
             '**/R.class',
             '**/R$*.class',
             '**/*$ViewInjector*.*',
             '**/*$ViewBinder*.*',
             '**/BuildConfig.*',
             '**/Manifest*.*'
          ]
      )
      def coverageSourceDirs = [
          "src/main/java",
          "src/$productFlavorName/java",
          "src/$buildTypeName/java"
     ]
         additionalSourceDirs = files(coverageSourceDirs)
         sourceDirectories = files(coverageSourceDirs)
         executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")
         reports {
            xml.enabled = true
            html.enabled = true
        }
      }
    }
}

}

但它只生成.exec个文件,没有xml或html

我缺少什么?这条线是不够的?

executionData = files("${project.buildDir}/jacoco/${testTaskName}.exec")
         reports {
            xml.enabled = true
            html.enabled = true
        }

0 个答案:

没有答案