【发布时间】:2021-06-15 21:01:35
【问题描述】:
我们已将 JaCoCo 插件集成到我们的 Android 项目中,以通过 SonarQube 测量代码覆盖率。但是,它无法测量。因为 SonarQube 期望覆盖报告为 XML 格式。我们在 build.gradle(module) 中添加了一个自定义的 jacocoTestReport 任务。它生成一个 xml 文件,但不包含任何覆盖信息。你遇到过这样的问题吗?如果有,有什么解决办法吗?
build.gradle(root)
classpath "org.jacoco:org.jacoco.core:0.8.5"
build.gradle(模块)
apply plugin: 'jacoco'
...
task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) {
reports {
xml.enabled = true
html.enabled = true
}
def fileFilter = ['**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*Test*.*',
'android/**/*.*']
def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter)
def mainSrc = "${project.projectDir}/src/main/java"
getSourceDirectories().setFrom(files([mainSrc]))
getClassDirectories().setFrom(files([debugTree]))
getExecutionData().setFrom(fileTree(dir: "$buildDir", includes: [
"jacoco/testDebugUnitTest.exec",
"outputs/code-coverage/connected/*coverage.ec"
]))
输出:
【问题讨论】:
标签: android sonarqube build.gradle code-coverage jacoco