以下是我的SonarQube配置文件片段:
Jacoco的配置和属性运行良好,我如何确认这一点呢? 我创建了一个Java类并为其编写了单元测试,Sonarqube识别了它,并将其记录为代码覆盖的一部分,同时忽略了所有Kotlin文件测试。 我尝试将一个Kotlin文件更改为Java文件,并为其编写了一个单元测试,是的,它被识别并添加为代码覆盖的一部分,同样,Kotlin文件测试被忽略。
顺便说一下,以下是我的Jacoco.gradle:
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文件,并为其编写了一个单元测试,是的,它被识别并添加为代码覆盖的一部分,同样,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'
])