Я пытаюсь отобразить покрытие тестов в SonarQube моего приложения Android Kotlin для кода в модуле приложения.Я могу сгенерировать результаты покрытия jacoco и отобразить Qualmetrics SonarQube, но проблема в том, что покрытие тестов не отображается в SonarQube :
https://imgur.com/a/xOjxLl1
в моей сборке.gradle моего проекта:
...
dependencies {
classpath 'org.jacoco:org.jacoco.core:0.8.3'
}
...
в моем build.gradle моего модуля приложения
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'org.sonarqube'
apply plugin: 'jacoco'
jacoco {
toolVersion = '0.8.3'
}
tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
}
android {
...
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testCoverageEnabled true
}
debug {
testCoverageEnabled true
}
testOptions {
animationsDisabled true
unitTests {
returnDefaultValues = true
includeAndroidResources = true
}
}
task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {
reports {
xml.enabled = true
html.enabled = true
}
def fileFilter = [ '**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*' ]
def debugTree = fileTree(dir: "$project.buildDir/tmp/kotlin-classes/debug", excludes: fileFilter)
def mainSrc = "$project.projectDir/src/main/java"
sourceDirectories = files([mainSrc])
classDirectories = files([debugTree])
executionData = fileTree(dir: project.buildDir, includes: [
'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec'
])
}
sonarqube {
properties {
property 'sonar.projectKey', 'mySonarKey'
property 'sonar.projectName', 'myProjectName'
property "sonar.host.url", "http://localhost:9000" // local sonar address
property "sonar.java.binaries", 'target/classes,app/build/tmp/kotlin-classes'
property "sonar.sources", 'src/main/java'
property "sonar.tests", 'src/androidTest/java'
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.coverage.jacoco.xmlReportPaths", "./build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml" //link to xml file that generated by jacoco
}
}
...
Я создаю свой отчет по jacoco с помощью: gradlew clean jacocoTestReport
И сгенерируйте мой анализ сонара:отчет, в котором я вижу, что мое тестовое покрытие сгенерировано с правильным покрытием.
Итак, вопрос в том, что я могу изменить, чтобы отобразить свое сгенерированное покрытие jacoco в SonarQube?
(Я не уверен насчет sonarqube.properties, которые я добавляю в свой модуль приложения build.gradle)