Groovy project - Sonar - Публикация проекта и данных покрытия кода Unit + Integration Test

Я имею:
1. Gradle 1.6
2. Экземпляр SonarQube 5.0 (также есть экземпляры 4.1+)
3. Sonar-Runner (он же SonarQube Runner) версия: 2.4
4. Groovy версия: 2.3.3 JVM: 1.7.0_40 Поставщик: Oracle Corporation ОС: Linux

У меня есть проект с Java, Java + Groovy или полностью основанный на Groovy проект. Все эти проекты имеют действительные модульные и не модульные тесты (интеграция, селен и т. Д.). Я также использую различные инструменты статического анализа для Java / Groovy (pmd, findbugs, checkstyle, codenarc и т. Д.).

Для проекта на основе Java, когда я запускаю sonarRunner (задача Gradle) ИЛИ sonar-runner, я вижу действительные данные в сводной панели Sonar проекта для всего (включая объединенное покрытие кода и другую информацию о работоспособности проекта). Итак, все работает для проекта на основе JAVA.

Но то же самое не работает для Groovy-проекта. то есть когда я передаю «sonar.language = grvy» для проекта на основе Groovy и запускаю анализ Sonar, я делаюНЕ получить покрытие для юнитов и ИТ-тестов, как говорится, 0% покрытияИЛИ ЖЕ он даже не перечисляет их на панели инструментов проекта Sonar, но я успешно получаю информацию о состоянии проекта (проблемы, строки кода и т. д.).

Когда я передаю вышеупомянутую переменную языка сонара как «sonar.language = java» для этого проекта Groovy, я делаюНЕ см. информацию о проекте Groovy (проблемы, строки кода и т. д.) и любую информацию о покрытии кода для тестов модулей / интеграции и их комбинированных тестов. У меня есть действительные файлы jacoco exec для модульных и интеграционных тестов (jacocoIT.exec создается после того, как jacocoagent присоединен к целевой JVM Tomcat и после остановки экземпляра Tomcat).

Есть идеи! почему sonar не работает для проекта на основе Groovy ИЛИ для проекта, который имеет оба языка Java + Groovy (исходный Java, тесты в Groovy или наоборот или смешанные).

PSЯ пробовал sonar.language = grvy, java ИЛИ sonar.language = java, grvy НО, это не улучшило панель управления сонара проекта.

Последняя версия SonarQube (5.0), которая у меня есть, поддерживает несколько языков.

эхолотаСхема движения проекта плагин также не показывает никакой информации, даже если в правой части отображаются строки кода (когда sonar.languages ​​передается какgrvy).

Когда я передаю sonar.language = java, то получаю, что здесь Project Motion Chart ничего не показывает (даже пустой график) говорит «Нет данных». Вся остальная информация, связанная со здоровьем проекта, также пропала (в полях технического долга и т. Д. Указано 0):

В последней версии SonarQube я вижу, что появились новые поля sonar. *. *, И я пытаюсь выяснить, отсутствует ли у меня поле для ввода или его правильное значение.





ХОРОШО.. что просходит??? когда я используюЭкземпляр SonarQube версия 4.1.2 (вместо 5.0)

Когда я используюsonar.language = Java Я вижу некоторую информацию, и охват модульных тестов говорит о 0%, но успех модульных тестов говорит о 100% успешности. Несмотря на то, что у меня есть действующий файл jacoco IT exec для тестов Integratiojn, он все еще не отображает информацию об этом виджете.



когдаЭкземпляр SonarQube - 4.1.2 и если я установлюsonar.language = grvyЯ не вижу ни одного покрытия модульных тестов или покрытия ИТ-состояний состоянием тестов вообще:

Это то, что у меня есть в файле sonar-project.properties моего проекта (когда я использую утилиту sonar-runner).

sonar.projectName=GradlePlugin
sonar.projectKey=com:company:projectABC:GradlePlugin
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/GradlePlugin/trunk
sonar.junit.reportsPath=build/test-results/UT
sonar.java.coveragePlugin=jacoco
sonar.groovy.coveragePlugin=jacoco
sonar.grvy.coveragePlugin=jacoco

Я использовал / настраивал вышеупомянутые значения много раз с разными значениями во время работы сонара-бегуна.

Я использовал те же значения с параметрами -D / -P при запуске задачи sonarRunner в Gradle.

Примечание: SonarQube 5.0 не будет работать с версией Gradle (1.6) (которую я использую), поскольку я получаю сообщение об ошибке «Не удалось загрузить библиотеки» и т. Д. (Эта ошибка не возникнет, если я использую версию Gradle> 2.2) ,


Еще один момент, который я заметил, это то, что, хотя я использую параметр компиляции Groovyотлаживать = истина для компиляции исходного кода и кода проекта Groovy при выполнении sonar-runner (с экземплярами SonarQube 4.1.2 или 5.0 isntances) - или работаетsonarRunner Gradle задача (с 4.1.2), я вижу следующие строки в выводе анализа.

15:32:20.647 INFO  - Analysing /production/jenkins/AKS/ma/GradlePlugin/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?

а также

15:32:24.681 INFO  - Analysing /production/jenkins/AKS/ma/GradlePlugin/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

Ответы на вопрос(0)

Ваш ответ на вопрос