У нас есть небольшое многомодульное приложение 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>