Как получить покрытие кода теста каратэ в SonarQube, используя плагин jacoco maven при загрузке Spring? - PullRequest
1 голос
/ 30 апреля 2019

У меня есть проект начальной загрузки, и я пишу тест с использованием Karate и с помощью плагина Java Code Coverage maven для генерации отчета о покрытии кода и использования SonarQube. У меня также есть 2 модульных теста. Я могу создать отчет Jacoco для модульного теста и теста каратэ, но процент покрытия кода SonarQube не увеличивается.

В первый раз я только создавал покрытие кода только для модульного теста, и процент покрытия SonarQube составлял 0,7%, затем я сгенерировал отчет покрытия кода для модульного теста и теста каратэ, но процент покрытия sonarQube не увеличился, он по-прежнему составляет 0,7%. .

Я знаю о покрытии кода каратэ index.html "target / site / jacoco / index.html", и он также генерирует.

Но я хочу, чтобы он отражал процент покрытия SonarQube.

Мое приложение работает на сервере centOS и все тестовые случаи пройдены. СТРОИМ успешно.

Мой файл POM.xml выглядит следующим образом.

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <swagger.version>2.5.0</swagger.version>
    <!-- Sonar -->
    <sonar.junit.reportPaths>target/surefire-reports,target/failsafe-reports</sonar.junit.reportPaths>
    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
    <sonar.jacoco.reportPaths>${project.build.directory}/jacoco.exec</sonar.jacoco.reportPaths>
    <sonar.jacoco.itReportPath>${project.build.directory}/jacoco-it.exec</sonar.jacoco.itReportPath>
</properties>

    <dependency>
        <groupId>com.intuit.karate</groupId>
        <artifactId>karate-apache</artifactId>
        <version>0.9.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.intuit.karate</groupId>
        <artifactId>karate-junit4</artifactId>
        <version>0.9.2</version>
        <scope>test</scope>
    </dependency>



<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.10</version>
            <configuration>
                <argLine>${surefireArgLine}
                    -Dfile.encoding=${project.build.sourceEncoding}</argLine>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.6.0.1398</version>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.22.1</version>
            <configuration>
                <argLine>${failsafeArgLine}
                    -Dfile.encoding=${project.build.sourceEncoding}</argLine>
            </configuration>
            <executions>
                <execution>
                    <id>integration-test</id>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.3</version>
            <executions>
                <execution>
                    <id>pre-unit-test</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                    <configuration>
                        <destFile>${sonar.jacoco.reportPaths}</destFile>
                        <append>true</append>
                        <propertyName>surefireArgLine</propertyName>
                    </configuration>
                </execution>
                <execution>
                    <id>post-unit-test</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
                <execution>
                    <id>pre-integration-test</id>
                    <phase>pre-integration-test</phase>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                    <configuration>
                        <destFile>${sonar.jacoco.itReportPath}</destFile>
                        <append>true</append>
                        <propertyName>failsafeArgLine</propertyName>
                    </configuration>
                </execution>
                <execution>
                    <id>post-integration-test</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                    <configuration>
                        <dataFile>${sonar.jacoco.itReportPath}</dataFile>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

</build>

Я ожидаю, что процент покрытия SonarQubr должен быть более 0,7%.

...