Я пытаюсь выполнить настройку сонара с помощью Jacoco для Kotlin, чтобы создать отчет о покрытии кода, но это не так. показывая любое покрытие кода. При проверке консоли сонара отображается следующая ошибка. Кто-нибудь сталкивался с этой проблемой раньше, любые предложения, которые можно пропустить.
Мета-информация
плагин с использованием sonarqube версии "2.6.1"
gradleVersion = '3.0.1'
kotlinVersion = '1.2.21'
Версия Sonarqube = Версия 6.7.1 (сборка 35068) - LGPL v3
Раздражает то, что мой проект установки генерирует пустой отчет о покрытии кода :(. PFA.
Изменить: Найдите структурную привязку проекта.
Я добавляю настройки файла сонара и градиента Jacoco, которые я использую для создания отчета по матрице сонара.
Вот файл sonar.gradle:
sonarqube {
properties {
property "sonar.projectKey", "jacoco.sonar.test"
property "sonar.projectName", "Sonar Jacoco Test"
property "sonar.projectVersion", "1.1"
property "sonar.java.source", "7"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
property "sonar.java.binaries", "build/tmp/kotlin-classes"
property "sonar.java.test.binaries", "build/intermediates/classes/test/,build/tmp/kotlin-classes/devDebugUnitTest"
property "sonar.tests","src/test/java"
property "sonar.sources","src/main/java"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.jacoco.reportPaths","build/jacoco/testDevDebugUnitTest.exec"
property "sonar.junit.reportsPath","build/test-results/testDevDebugUnitTest"
}
}
и вот файл jacoco.gradle
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.7.9"
reportsDir = file("${project.projectDir}/app/build/reports")
}
task jacocoTestReport(type: JacocoReport, dependsOn: "app:testDevDebugUnitTest") {
group = "Reporting"
reports {
xml.enabled = true
html.enabled = true
}
def fileFilter = ['**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/*$ViewInjector*.*',
'**/*$ViewBinder*.*',
'**/*$MembersInjector*.*',
'**/Manifest*.*',
'**/*Test*.*',
'android/**/*.*']
classDirectories = fileTree(
dir: "${project.projectDir}/app/build/intermediates/classes/dev",
excludes: fileFilter
) + fileTree(
dir: "${project.projectDir}/app/build/tmp/kotlin-classes/devDebug",
excludes: fileFilter
)
// sources
sourceDirectories = files(["${project.projectDir}/app/src/main/java"])
executionData = files("${project.projectDir}/app/build/jacoco/testDevDebugUnitTest.exec")
}
Следуя командам gradle, которые я использую для создания отчета Jacobo, а затем отчета о взлете.
./gradlew clean jacocoTestReport sonarqube
Я заметил, что после того, как я получаю, должен быть какой-то путь.
Информация о покрытии не собиралась. Возможно, вы забыли включить отладочную информацию в скомпилированные классы?
Извините, если это длина в битах; но это лучшее, что я нашел для резюме в одном месте. Также обратите внимание, что я пробовал аналогичную настройку с классом Java вместо Kotlin, который генерирует отчет с покрытием кода.