Android 如何用Gradle创建JaCoCo的xml报表
我有一个Android项目。Android 如何用Gradle创建JaCoCo的xml报表,android,gradle,android-gradle-plugin,jacoco,Android,Gradle,Android Gradle Plugin,Jacoco,我有一个Android项目。 我试图用JaCoCo代码覆盖Gradle 这是我的JaCoCo配置: apply plugin: 'jacoco' project.afterEvaluate { def buildTypes = android.buildTypes.collect { type -> type.name } def productFlavors = android.productFlavors.collect { flavor -> flavor.name }
我试图用JaCoCo代码覆盖Gradle 这是我的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
}
您是否注意到覆盖率报告的默认位置是
app/build/reports/jacoco/coverageReport
,它不在app/build/jacoco
中的.exec
文件旁边?因此,没有任何报告,对吗?但是怎么了?你能解决这个问题吗?我在我的android项目中也看到了同样的情况