2014-02-15 4 views
3

У меня есть многомодульный проект и вы хотите визуализировать покрытие кода интеграции с помощью SonarQube. Я могу генерировать test.exec и integTest.exec (JaCoCo), но есть проблема, чтобы заставить сонар-runner (sonar-jacoco-plugin) использовать их. сонар-бегун отчеты:Невозможно использовать покрытие интеграции с помощью сонара в многомодульном проекте

Охват проекта установлен на 0%, так как нет каталогов с классами.

, который является истинным как для корневого проекта (где сгенерирован файл integTest.exec), не имеет исходных файлов (но это не должно быть проблемой для покрытия интеграции). Моя конфигурация:

(...) 
sonar.dynamicAnalysis=reuseReports 
sonar.jacoco.reportPath=build/jacoco/test.exec 
sonar.jacoco.itReportPath=build/jacoco/integTest.exec 
sonar.modules=mod1,mod2 
sonar.sources=src/main/java,src/main/resources 
sonar.tests=src/test/java,src/test/groovy,src/test/resources 
sonar.binaries=build/classes/main,build/resources/main 

Проект построен с Gradle, но из-за CI ограничений, мне нужно использовать sonar-project.properties с конфигурацией сонар-бегун (не сонар-бегун плагин от Gradle который работал для меня в прошлом).

Обновление. После анализа источников sonar-jacoco-plugin я попытался создать каталог, определенный как двоичный каталог, но, к сожалению, sonar-runner не устанавливает свойство sonar.binaries для корневого модуля вообще.

Мой вопрос. Есть ли обходной путь, который позволил бы мне использовать файл с данными об охвате интеграции в многомодульном проекте с помощью сонара?

ответ

2

Как уродливой обходного я смог настроить путь отчета в:

sonar.jacoco.reportPath=../build/jacoco/test.exec 
sonar.jacoco.itReportPath=../build/jacoco/integTest.exec 

и модулей второго уровня (модуль mod1, который имеет свои собственные подмодули mod1a и mod1b):

mod1.sonar.jacoco.reportPath=../../build/jacoco/test.exec 
mod1.sonar.jacoco.itReportPath=../../build/jacoco/integTest.exec 

Тем не менее, он очень подвержен ошибкам, и я надеюсь, что у кого-то еще будет лучшая идея.

Смежные вопросы