Jacoco.exec не отображает полное тестовое покрытие в SonarQube

У нас есть небольшое многомодульное приложение Java Spring REST, которое создается с помощью плагина maven surefire. Поскольку приложение довольно мало, мы написали сочетание модульных тестов и интеграционных тестов и запустили их все как модульные тесты, так что мы получили единый набор файлов jacoco.exec.

Когда я вызываю тестовое покрытие в SonarQube, покрытие рассчитывается только для модуля, в котором был запущен тест. Таким образом, интеграционные тесты, которые у нас есть на уровне контроллера REST, не создают никакого покрытия на уровне бизнеса или данных.

Я перепробовал несколько конфигураций jacoco и устал смотреть на него. Любые предложения были бы полезны.

конфигурация jacoco в родительском файле pom.xml:

        <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>

Верная конфигурация в родительском файле pom.xml:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <systemPropertyVariables>
                    <org.jboss.logging.provider>slf4j</org.jboss.logging.provider>
                </systemPropertyVariables>          
            </configuration>
        </plugin>

person Arlo Guthrie    schedule 22.12.2016    source источник


Ответы (1)


покрытие рассчитывается только для модуля, в котором проводился тест

Так работает импорт отчета JaCoCo в SonarQube.

Если вы хотите решить эту проблему, вы можете объединить отчеты перед их загрузкой в ​​SonarQube.

person benzonico    schedule 22.12.2016
comment
Спасибо, я попробую и помечу как ответ после праздников. - person Arlo Guthrie; 23.12.2016