sonar scanner plugin org analyze groovy gradle code-coverage sonarqube jacoco

scanner - Groovy project-Sonar-Proyecto de publicación y datos de cobertura del código de Unit+Integration Test



sonar scanner token (0)

Yo tengo:
1. Gradle 1.6
2. SonarQube instance 5.0 (también tiene 4.1+ instancias)
3. versión de sonar-runner (también conocido como SonarQube runner): 2.4
4. Versión Groovy: 2.3.3 JVM: 1.7.0_40 Proveedor: Oracle Corporation OS: Linux

Tengo proyectos con Java, Java + Groovy o un proyecto totalmente basado en Groovy. Todos estos proyectos tienen pruebas válidas de Unidad y no Unidad (Integración, Selenio, etc.). También estoy ejecutando varias herramientas analíticas estáticas para Java / Groovy (pmd, findbugs, checkstyle, codenarc, etc.).

Para un proyecto basado en Java, cuando ejecuto sonarRunner (tarea Gradle) O sonar-runner, veo datos válidos en el tablero Sonar del proyecto para todo (incluida la cobertura de código combinado y otra información de salud del proyecto). Entonces, todo funciona para un proyecto basado en JAVA.

Lo mismo, sin embargo, no está funcionando para un proyecto basado en Groovy. es decir, cuando paso "sonar.language = grvy" para un proyecto basado en Groovy y ejecuto el análisis de Sonar, NO obtengo cobertura de unidad y prueba de TI, ya que dice 0% de cobertura O incluso no enumera aquellos en el tablero del proyecto Sonar, pero obtener con éxito información de salud del proyecto (problemas, líneas de código, etc.).

Cuando paso la variable de idioma de sonar anterior como "sonar.language = java" para este proyecto de Groovy, NO veo información de datos del proyecto de Groovy (problemas, líneas de código, etc.) y ninguna información de cobertura de código para pruebas de Unidad / Integración y sus pruebas combinadas. Tengo archivos ejecutables jacoco válidos para las pruebas unitarias y las pruebas de integración (jacocoIT.exec se crea después de que jacocoagent se adjunta a la JVM de Tomcat de destino y después de detener la instancia de Tomcat).

¡Algunas ideas! por qué el sonar no funciona para un proyecto basado en Groovy O para un proyecto que tiene Java + Groovy (fuente Java, pruebas en Groovy o viceversa o mixto).

PD : Intenté sonar.language = grvy, java O sonar.language = java, grvy PERO no mejoró el tablero del sonar del proyecto.

La última versión de SonarQube que tengo (5.0) admite soporte de múltiples idiomas .

El plugin Project Chart de Sonar tampoco muestra ninguna información, aunque se muestran líneas de código en el lado derecho (cuando sonar.languages ​​se pasa como grvy ).

Cuando paso sonar.language = java, aquí Project Chart no muestra nada (ni siquiera un gráfico en blanco) dice "Sin datos". El resto de la información relacionada con la salud del proyecto también se ha ido (los campos de deuda técnica, etc. dice 0):

Con la última versión de SonarQube, veo que hay nuevos campos de sonar. *. * Y estoy tratando de encontrar si me falta para proporcionar un campo o su valor correcto.





OK ... ¿qué pasa ??? cuando uso la versión de SonarQube versión 4.1.2 (en lugar de 5.0)

Cuando uso sonar.language = java veo cierta información y la cobertura de la prueba de unidad dice 0% pero el éxito de la prueba de unidad dice 100% de éxito. A pesar de que tengo un archivo ejecutable de TI jacoco válido para las pruebas de Integratiojn, aún no muestra esa información del widget.



Cuando la instancia de SonarQube es 4.1.2 y si configuro sonar.language = grvy , NO veo ninguna cobertura de pruebas de Unidad o cobertura de TI del estado de las pruebas que sean exitosas% en absoluto:

Esto es lo que tengo en el archivo sonar-project.properties de mi proyecto (cuando uso la utilidad sonar-runner).

sonar.projectName=THIDSGradlePlugin sonar.projectKey=com:company:projectABC:THIDSGradlePlugin sonar.projectVersion=1.0 # optional description sonar.projectDescription=ContainerSvc Business Service #sonar.language=grvy,java sonar.language=java #Tells SonarQube that the code coverage tool by unit tests is JaCoCo sonar.java.coveragePlugin=jacoco #Tells SonarQube to reuse existing reports for unit tests execution and coverage reports sonar.dynamicAnalysis=reuseReports #Tells SonarQube where the unit tests execution reports are sonar.surefire.reportsPath=build/test-results/UT # Some properties that will be inherited by the modules #sonar.sources=src/main/groovy,src/main/java,src/test/java,src/test/groovy,src/java-test,src/groovy-test # Sonar Unit Test Report path sonar.jacoco.reportPath=build/jacoco/UT/jacocoUT.exec # Sonar Integration Test Report Path #sonar.jacoco.itReportPath=build/jacoco/IT/jacocoIT.exec sonar.jacoco.itReportPath=build/jacoco/UT/jacocoUT.exec # Sonar Binaries sonar.binaries=build/classes/main sonar.java.binaries=build/classes/main sonar.groovy.binaries=build/classes/main sonar.sources=src/main/groovy sonar.tests=src/test/groovy # Encoding of the source code sonar.sourceEncoding=UTF-8 sonar.scm.url=scm:svn:http://kobaloki/Core/THIDSGradlePlugin/trunk sonar.junit.reportsPath=build/test-results/UT sonar.java.coveragePlugin=jacoco sonar.groovy.coveragePlugin=jacoco sonar.grvy.coveragePlugin=jacoco

Usé / modifiqué los valores anteriores muchas veces con diferentes valores mientras ejecutaba el sonar-runner.

Usé los mismos valores con los parámetros -D / -P cuando ejecuté la tarea sonarRunner en Gradle.

Nota: SonarQube 5.0 no funcionará con la versión de Gradle (1.6) (que estoy usando) ya que recibo un error sobre "Error al descargar bibliotecas", etc. (este error no aparecerá si utilizo la versión de Gradle> 2.2) .


Otro punto que noté es que, aunque estoy usando la opción de compilación Groovy debug = true para compilar el código fuente y de pruebas del proyecto Groovy, mientras hago el sonar-runner (con la instancia SonarQube 4.1.2 o 5.0 isntances) --or ejecutando la tarea SonarRunner Gradle (con 4.1.2), veo las siguientes líneas en el resultado del análisis.

15:32:20.647 INFO - Analysing /production/jenkins/AKS/ma/THIDSGradlePlugin/build/jacoco/IT/jacocoIT.exec 15:32:21.025 WARN - Coverage information was not collected. Perhaps you forget to include debug information into compiled classes?

y

15:32:24.681 INFO - Analysing /production/jenkins/AKS/ma/THIDSGradlePlugin/build/jacoco/UT/jacocoUT.exec 15:32:24.791 WARN - Coverage information was not collected. Perhaps you forget to include debug information into compiled classes? 15:32:24.792 INFO - Sensor JaCoCoSensor done: 112 ms