2016-10-24 3 views
1

У меня есть проект Java, состоящий из нескольких модулей. Некоторые функции для общего пакета тестируются в других модулях. Sonar показывает только покрытие кода, тестируемое внутри каждого пакета, как я могу сказать, что он выполняет поиск во всех модулях?SonarQube - Показывать покрытие кода с учетом нескольких проектов

Я использую SonarQube 4.5.4, Java 8 и JUnit 4,12

+1

Вы могли бы дать больше информации sonarqube version jdk sonar runner или scun ...! – Inforedaster

ответ

0

Вы должны предоставить SonarQube с одного отчета JaCoCo агрегирования данных из всех модулей.

В родительском ПОМ, определить место для этого агрегированного отчета JaCoCo:

<properties> 
    <sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath> 
</properties> 

и настроить JaCoCo (особенно <destFile>)

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.7.6.201602180812</version> 
    <configuration> 
     <destFile>${sonar.jacoco.reportPath}</destFile> 
     <append>true</append> 
    </configuration> 
    <executions> 
     <execution> 
     <id>agent</id> 
     <goals> 
      <goal>prepare-agent</goal> 
     </goals> 
     </execution> 
    </executions> 
</plugin> 

В каждом модуле, скажите JaCoCo агрегировать данные покрытия к этому глобальному файлу отчета JaCoCo:

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <configuration> 
     <destFile>${sonar.jacoco.reportPath}</destFile> 
    </configuration> 
</plugin> 

Вы можете посмотреть этот проект: https://github.com/racodond/sonar-css-plugin, который производит агрегированный отчет JaCoCo, используемый SonarQube: https://sonarqube.com/dashboard/index?id=org.codehaus.sonar-plugins.css%3Acss

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