当前位置: 首页 > 知识库问答 >
问题:

雅可可声纳Qube集成

壤驷茂实
2023-03-14

我花了好几天时间试图让SonarQube显示Maven Jacoco插件的单元测试代码覆盖率。

我卡住的错误消息是

[INFO] Analysing .../target/jacoco.exec
[WARNING] Coverage information was not collected. Perhaps you forget to include debug information into compiled classes?

目标/站点/Jacoco/index.html下的报告按预期生成,并包含行突出显示和行号。我读过,如果编译的类中不包含调试信息,那么突出显示和行号将不会显示在此报告中。

我已经阅读了Maven默认包含调试信息,但是,以防万一我在项目maven-编译器插件设置中包含以下配置

<configuration>
    <debug>true</debug>
    <debuglevel>lines,vars,source</debuglevel>
</configuration>

我的设置中有以下属性。xml(故意省略主机和登录名)

<properties>
    <sonar.host.url></sonar.host.url>
    <sonar.login></sonar.login>
    <sonar.ws.timeout>300</sonar.ws.timeout>
</properties>

我的Jacoco插件配置如下。

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

我的雅各布。exec位于target/jacoco的默认位置。由SonarQube正确找到。

相关版本

马文3.2.2

Maven编译器3.5.1

Maven保险2.19.1

Java1.80_11

SonarQube服务器5.6

Jacoco Maven插件0.7.7.201606060606

麦克OS X 10.10.5

提前感谢您的帮助!

----编辑----

我正在运行以下maven命令

mvn 清洁包

mvn声纳:声纳

共有1个答案

费子濯
2023-03-14

我已经关注了这里的文章,它只是为我工作,我只更新了代码以反映最新的JaCoCo插件版本

    <dependency>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.9</version>
    </dependency>

并将加可可代理添加到我的POM插件中:

    <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                 <executable>true</executable>
            </configuration>
        </plugin>
        <!-- JaCoCo configuration -->
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.9</version>
            <executions>
                <execution>
                    <id>default-prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>default-report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

并运行以下 maven 命令(在詹金斯中):

clean deploy $SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL

我有sonar cube 6 . 3 . 0 . 19869,Jenkins 2.46.1,Jenkins 2.15.1中的Maven集成插件(老一点的导致了我栈中的JVM问题)。

 类似资料:
  • 几天来,我一直在努力将JaCoCo的报告集成到SonarQube 5.0.1中。我总是在声纳曲中阅读0.0%的覆盖率。 TeamCity 9生成了一个testresults.xml和一个jacoco.exec文件,我将其用于声纳转轮。TeamCity显示覆盖范围,因此exec文件接缝很好。Java代码分析基本上在SonarQube(FindBugs、PMD等)中工作。 我有一个仍在使用Ant构建的

  • 我有一个项目结构,如下所示。 Cloud projects文件夹有四种类型的项目(eco-projects,evn-projects,met-projects,svn-projects) 每种类型的项目又包含四个不同的项目,比如在生态项目中,我们有生态-1-项目,生态-2-项目,生态-3-项目,生态-4-项目。

  • 我正试图从声纳生成定制的分析报告。我正在使用sonar-ws-client。我的代码是: 我能够获得大部分值,但是总是返回。有没有办法得到7天、15天和30天的变化值?

  • 在运行基于 Gradle 的构建和集成测试后,我在“构建/jacoco”文件夹中成功生成了 2 个 .exec 文件。 gradle命令:“gradle清洁构建集成测试” 完成后,它将在build/jacoco文件夹下生成以下.exec文件。 test.exec integrationTest.exec 以下是我的sonar-project.properties文件。当我在Linux上运行“son

  • 我的JUnit测试覆盖范围在jenkins上构建时不会传播到声纳。声纳上的“单元测试覆盖范围”字段保持空白,但“单元测试成功”字段显示正确的值。我正在使用jacoco进行测试覆盖。在jenkins上,jacoco的报告运行良好,并在生成的html中显示了正确的覆盖率。我就是不能把它送到声纳上。 使用jenkins的Jacoco插件,我使用以下参数调用独立的声纳分析。 路径和蚁任务是正确的。也许我错