2017-12-22 10 views
1

Ich habe einen Jenkins Artikel konfiguriert, dass nach gradle Gebäude und Tests, die mit den folgenden Spezifikationen „Sonarqube Scanner Execute“ nennt:Ist es möglich, Android Kotlin Code-Coverage mit SonarQube zu analysieren?

sonar.projectKey=my_project_key 
sonar.projectName=my_Android 
sonar.projectVersion=1.0 
sonar.sources=app/src 
sonar.java.binaries=app/build/intermediates/classes/debug 
sonar.coverage.exclusions=app/src/test/**,app/src/androidTest/**,app/src/main/res/** 

Diese erfolgreich läuft Sonarqube und erzeugt einen Bericht IPaddress: 9000, das misst: Bugs, Schwachstellen, Schulden, Code Smells und Duplications genau so, wie es sein sollte. In diesem Bericht gibt es jedoch keinen Platz, der den von Tests abgedeckten Code definiert. SonarQube führt das Kotlin-Plug-in erfolgreich aus und erkennt die Codebasis selbst, bestimmt jedoch nicht die Abdeckung. Ist es möglich, diese Informationen mit SonarQube zu sammeln, wenn Sie Kotlin Android verwenden?

Ich habe versucht, Jacoco zu installieren, konnte aber keine neuen Daten zu den SonarQube-Ergebnissen anzeigen.

Antwort

0

Mein Projekt verwendet Jacoco zum Generieren von Abdeckungsberichten. Haben Sonarqube die Ergebnisse holen, versuchen die Einstellung folgender:

sonar.java.binaries = {$ builddir}/classes/Kotlin

Mit anderen Worten lassen Sonarqube wissen, wo die Kotlin Klassendateien sind. Diese Konfiguration setzt ein 100% Kotlin-Projekt voraus. Wenn Ihr Projekt eine Mischung aus Java und Kotlin ist, müssen Sie festlegen, wie beide Verzeichnisse konfiguriert werden.

+0

Ich habe versucht, zu ändern: 'sonar.java.binaries = app/build' zu: 'sonar.java.binaries = app/build/Kotlin' aber leider immer Code Coverage Ich bin immer noch nicht ... – Don

+0

Leider kenne ich die Build-Struktur von Android nicht. Dies funktionierte mit Gradle 4.4 und einer JVM-basierten Anwendung, aber vielleicht ist die Version von Gradle, die Sie verwenden, älter, was ein anderes Verzeichnis als den 'binaries'-Ordner erfordern würde? Oder schreibt Android/Gradle die Klassendateien woanders? – Mikezx6r

Verwandte Themen