Охват ИТ-тестами составляет 0 % при использовании Jacoco в SONAR.

Я использую:

SONAR v.3.2 (есть жакоко)

Мавен 3.0.4

Читал "http://johndobie.blogspot.in/2012/05/easy-unit-and-integration-code-coverage.html#comment-form", чтобы получить отдельное покрытие кода для модульных и ИТ-тестов. Но покрытие ИТ-тестами показано как 0%. Он создает отдельные файлы jacoco-unit.exec (44 КБ) и jacoco-it.exec (14 КБ), но покрытие показано только для модульных тестов в SONAR.

Журналы отображаются как:

[INFO] [13:10:23.515] Sensor SquidSensor done: 9437 ms
[INFO] [13:10:23.515] Sensor JaCoCoSensor...
[INFO] [13:10:23.578] Analysing ...\target\coverage-reports\jacoco-unit.exec
[INFO] [13:10:30.390] Sensor JaCoCoSensor done: 6875 ms
[INFO] [13:10:30.390] Sensor JaCoCoItSensor...
[INFO] [13:10:30.390] Analysing ...\target\coverage-reports\jacoco-it.exec
[INFO] [13:10:30.469] Sensor JaCoCoItSensor done: 79 ms
[INFO] [13:10:30.484] Sensor SurefireSensor...
[INFO] [13:10:30.484] parsing ...\target\surefire-reports
[INFO] [13:10:30.828] Sensor SurefireSensor done: 344 ms
[INFO] [13:10:30.828] Sensor CpdSensor...
[INFO] [13:10:30.828] SonarEngine is used
[INFO] [13:10:30.844] Cross-project analysis disabled
[INFO] [13:10:32.312] Sensor CpdSensor done: 1484 ms
[INFO] [13:10:32.312] Sensor CheckstyleSensor...

POM-файл:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.csr.lts</groupId>
    <artifactId>lts-webapp</artifactId>
    <packaging>war</packaging>
    <name>LTS Webapp</name>
    <url>http://maven.apache.org</url>
    <parent>
        <groupId>com.csr</groupId>
        <artifactId>lts</artifactId>
        <version>0.1-SNAPSHOT</version>
    </parent>

    <properties>
        <coverage.reports.dir>${basedir}/target/coverage-reports</coverage.reports.dir>
        <sonar.jacoco.reportPath>${coverage.reports.dir}/jacoco-unit.exec</sonar.jacoco.reportPath>
        <sonar.jacoco.itReportPath>${coverage.reports.dir}/jacoco-it.exec</sonar.jacoco.itReportPath>
        <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
        <sonar.jacoco.jar>${basedir}/lib/org.jacoco.agent-0.5.10.201208310627-runtime.jar</sonar.jacoco.jar>
    </properties>

    <build>
        <finalName>lts</finalName>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.3</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit47</artifactId>
                        <version>2.12</version>
                    </dependency>
                </dependencies>
                <configuration>

                    <argLine>
                        -javaagent:${sonar.jacoco.jar}=destfile=${sonar.jacoco.reportPath},append=false,includes=com.*
                    </argLine>
                    <includes>
                        <include>**/*Test.java</include>
                        <include>**/Test*.java</include>
                    </includes>
                    <excludes>
                        <exclude>**/IT*.java</exclude>
                    </excludes>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.12.3</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit47</artifactId>
                        <version>2.12</version>
                    </dependency>
                </dependencies>

                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                        <configuration>
                            <argLine>
                                -javaagent:${sonar.jacoco.jar}=destfile=${sonar.jacoco.itReportPath},append=false,includes=com.*
                            </argLine>
                            <includes>
                                <include>**/IT*.java</include>
                            </includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

person user1671439    schedule 14.09.2012    source источник
comment
Не полностью проанализировал вашу конфигурацию, но первый вопрос, который приходит на ум: добавили ли вы виджет «Покрытие кода интеграции» в Sonar? По умолчанию его нет на панели инструментов по умолчанию.   -  person aquacode    schedule 14.11.2012


Ответы (1)


Вы можете ознакомиться с нашими примерами проектов здесь: https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/code-coverage/combined%20ut-it

Вы найдете примеры проектов, в которых сообщается о покрытии как модульными, так и интеграционными тестами благодаря JaCoCo.

person Fabrice - SonarSource Team    schedule 25.01.2013
comment
Пример проекта больше не доступен (404) - person Allan Lykke Christensen; 01.08.2014
comment
У меня точно такая же проблема, хотя мы следовали примерам сонара и документации. stackoverflow.com/questions/28589790/ - person Michael K.; 23.02.2015