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

声纳Qube 5与雅科0.0%的覆盖范围,为什么?

牛景同
2023-03-14

几天来,我一直在努力将JaCoCo的报告集成到SonarQube 5.0.1中。我总是在声纳曲中阅读0.0%的覆盖率。

TeamCity 9生成了一个testresults.xml和一个jacoco.exec文件,我将其用于声纳转轮。TeamCity显示覆盖范围,因此exec文件接缝很好。Java代码分析基本上在SonarQube(FindBugs、PMD等)中工作。

我有一个仍在使用Ant构建的多模块项目。“核心”项目的单元测试在一个名为“jUnit”的自己的项目中。使用了JUnit 4库,但测试仍然是JUnit 3。

这些是相关的(?)我在一个名为“sonar-project.properties”的文件中使用的属性:

core.sonar.tests                           = ../junit/src
core.sonar.junit.reportsPath               = /tmp/testresults.xml
core.sonar.core.coveragePlugin             = jacoco
core.sonar.jacoco.reportMissing.force.zero = false
core.sonar.jacoco.reportPath               = /tmp/jacoco.exec

属性前缀“core”是因为它们正在配置模块“core”。

路径应该是正确的。但它说:“WARN - 报告路径未找到:/tmp/testresults.xml”路径是正确的,我不知道为什么会出现这个警告。

我是否需要二进制文件才能覆盖声纳Qube?我还没有编译代码

或者,在我运行声纳运行器后,声纳Qube显示0%覆盖范围的原因是什么?

共有1个答案

晁绍辉
2023-03-14

首先:/tmp/testresults.xml这与覆盖率无关,而是与测试结果导入(考试数量、成功测试)有关。

我是否需要二进制文件才能覆盖声纳Qube?我还没有编译代码。

你这个问题的答案就在这个审问里:是的。为了在读取时计算覆盖率。exec JaCoCo报告文件,JaCoCo analyzer(在java插件中使用)需要。类文件输入流,因此需要字节码来导入JaCoCo报告。因此,请编译您的项目,并通过< code>sonar.java.binaries属性提供类文件。

 类似资料:
  • 我正在尝试使用SonarQube扫描仪(版本3.1.0.1141)分析java代码。 声纳Qube版本 : 5.6.6 声纳Java插件版本: 4.12.0.11033 哈科版本 : 0.8.0 我已经用这些属性填充了声纳项目属性: 而Jacoco报告给我一个类的结果: 覆盖率:84% 分支机构覆盖率:71% 错过:9 复杂性:24 错过:6 行数:69 错过:0 方法:8 错过:0 课程:1 S

  • 我正在将 Gradle 4.4 用于 JaCoCo 0.8.0 的 Java 项目,并将声纳与声纳贾瓦 5.0.1 配合使用。 我有一个用龙目岛和注释的课程。 我在build.gradle中的JaCoCo配置如下所示: 此外,我有lombok.confi文件,其属性为< code > lombok . addlombokgeneratedannotation = true ,生成的内容实际上有<

  • 我使用jacoco来获取代码覆盖率指标,并使用声纳qube以及它来可视化它。 Jacoco拥有多个“子”覆盖范围 行 方法 分支 类 指示 但如果我们查看sonarqube,它只显示了一个“覆盖”信息。 sonarqube指的是上述5个覆盖范围中的哪一个?

  • 我们有一个多模块的maven项目。 每个模块都有一对testng和powermock单元测试用例。我们正在使用jacoco进行代码覆盖率报告。但是,jacoco在分析单元测试复盖率时基于testng单元测试用例,而忽略了powermock单元测试用例。因此,总的代码覆盖率越来越低。 如何配置jacoco来同时获取testng和jacoco测试用例?

  • 我正在尝试为webapp生成代码覆盖率,以便使用jacoco和sonar进行手动测试。 我能够通过以下方式修改catalina.bat来生成jacoco.exec文件: I然后复制JACOCO。执行文件到sonarcube内的目标文件夹,然后运行ant sonar。建造。xml包含以下条目: 我从ant获得的输出如下。我在url上看不到任何报道http://localhost:9000/dashb

  • 我对C#UTF8编码感到困惑... 假设这些“事实”是正确的: Unicode是定义每个字符的“协议” 根据C#参考,每个字符的可接受范围为0x0000到0xFFFF。我不明白另一个字符是什么,它在0xFFFF之上,在Unicode协议中定义的? 与C#相比,当我使用Python编写UTF8文本时-它涵盖了所有预期范围(0x0000到0x10FFFF)。例如: 这对C不起作用。此外,当我将Pyth