Агрегированное покрытие или покрытие в зависимых модулях, не показанных в SonarQube + Отчеты генерируются Jacoco - PullRequest
0 голосов
/ 06 октября 2018

Я использую плагин jacoco для генерации отчетов html, xml и jacoco.exec, чтобы измерить охват кода, протестированного моими testNg тестами.

Я успешно создал эти отчеты в моем регионе, а также в Jenkins, и все результаты моего модульного теста отражены в Sonar, и он показывает мне покрытие.

My jacoco.exec имеет как результаты покрытия в модуле, так и в зависимых модулях.Я подтвердил это, используя eclemma plugin для eclipse.

Я не получаю результаты покрытия в зависимых модулях в Sonar. Делает ли кто-нибудь, что я делаю неправильно.

Мой плагинидет так

<plugin>
 <groupId>org.jacoco</groupId>
 <artifactId>jacoco-maven-plugin</artifactId>
 <version>0.7.7.201606060606</version>
 <executions>
    <execution>
        <goals>
            <goal>prepare-agent</goal>
        </goals>
    </execution>
    <execution>
        <id>report</id>
        <phase>prepare-package</phase>
        <goals>
            <goal>report</goal>
        </goals>
    </execution>
  </executions>
</plugin>

и моя цель jacoco:report-aggregate

1 Ответ

0 голосов
/ 12 октября 2018

Я получил ответ от покрытия плагина jacoco в мультимодуле

Ниже были ошибки, которые я сделал, что вызвало проблему у меня.В свойствах нашего pom

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

и в плагине

 <destFile>${sonar.jacoco.reportPath}</destFile>

для меня вышеприведенный оператор сбросил jacoco.exec в разных папках из-за различий в иерархии модулей maven какрезультат, который они никогда не агрегируют.

Второй момент заключается в том, что покрытие зависимого модуля будет получено только в том случае, если оно составляет compile time dependency для модуля тестирования.

...