gpt4 book ai didi

android - SonarQube 代码覆盖率无法解释 Android 项目中的 Kotlin 文件

转载 作者:行者123 更新时间:2023-12-04 11:35:01 25 4
gpt4 key购买 nike

下面是我的 sonarqube 属性 fragment :

sonarqube {
properties{
property "sonar.junit.reportPaths", "build/test-results/testDebugUnitTest/*.xml"
property("sonar.coverage.jacoco.xmlReportPaths", "build/reports/jacocoTestReport.xml"
}
}
Jacoco 配置和属性工作正常,我是如何确认的?
我创建了一个 java 类并为它编写了一个单元测试,sonarqube 识别了这一点并将其记录为代码覆盖率的一部分,而它基本上忽略了所有 Kotlin 文件测试。
我继续将一个 kotlin 文件更改为 java 并为它编写了一个 UnitTest,是的,它被重新识别并添加为代码覆盖率的一部分,同样,kotlin 文件测试被忽略了。
顺便说一下,下面是我的 Jacoco.gradle:
apply plugin: 'jacoco'

ext {
coverageExclusions = [
'**/*Activity*.*',
'**/*Fragment*.*',
'**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
]
}

jacoco {
toolVersion = '0.8.6'
reportsDir = file("$buildDir/reports")
}

tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
jacoco.excludes = ['jdk.internal.*']
}


tasks.withType(Test) {
finalizedBy jacocoTestReport // report is always generated after tests run
}

task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) {
group = "Reporting"
description = "Generate Jacoco coverage reports for Debug build"

reports {
xml.enabled(true)
html.enabled(true)
xml.destination(file("build/reports/jacocoTestReport.xml"))
}

def debugTree = fileTree(dir: "${buildDir}/intermediates/javac/debug/classes", excludes: coverageExclusions)
def mainSrc = "/src/main/java"

additionalSourceDirs.from = files(mainSrc)
sourceDirectories.from = files([mainSrc])
classDirectories.from = files([debugTree])

executionData.from = fileTree(dir: project.buildDir, includes: [
'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec'
])

最佳答案

请检查 java + kotlin 项目的 jacoco 配置:
http://vgaidarji.me/blog/2017/12/20/how-to-configure-jacoco-for-kotlin-and-java-project/
关键是在 sourceDirectories 和 classeDirectories 中包含 kotlin 目录

关于android - SonarQube 代码覆盖率无法解释 Android 项目中的 Kotlin 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68353852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com