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

声纳报告的线路和分支覆盖范围不同于Idea、Eclipse、Maven和Jenkins

芮瑾瑜
2023-03-14

我所有这些工具都报告了与JaCoCo相同的覆盖率:69%的线路覆盖率和23%的分支覆盖率。

注意:截图已经拍摄了几天,所以它们的值略有不同,但差异是

然而,声纳报告了不同的值:

360.png" width="100%" height="100%" />

Maven项目的结构如下:

    < li >主(聚合器) < ul > < li>java模块 js(节点)模块

您可以看到main和java模块报告的覆盖率相同,而js模块没有覆盖率。

我正在使用最新版本的雅各语,哈科专家插件和声纳的Java插件

以下是来自 mvn 声纳:声纳的相关构建日志片段 - 似乎都按顺序排列:

$ egrep -i 'jacoco|\[warn]' consoleText
[WARN] [04:34:29.569] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[WARN] [04:34:29.576] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[WARN] [04:34:29.593] 'sonar.dynamicAnalysis' is deprecated since version 4.3 and should no longer be used.
[INFO] [04:34:32.704] JaCoCoItSensor: JaCoCo IT report not found: /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/jacoco-it.exec
[WARN] [04:34:32.952] Bytecode of dependencies was not provided for analysis of test files, you might end up with less precise results. Bytecode can be provided using sonar.java.test.libraries property
[WARN] [04:34:50.101] Cobertura report not found at /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/site/cobertura/coverage.xml
[INFO] [04:35:03.391] Sensor JaCoCoSensor
[INFO] [04:35:03.406] Analysing /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/jacoco.exec
[INFO] [04:35:03.712] Sensor JaCoCoSensor (done) | time=321ms
[INFO] [04:35:03.712] Sensor JaCoCoOverallSensor
[INFO] [04:35:03.714] Analysing /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/jacoco.exec
[INFO] [04:35:03.762] Analysing /home/acme/workspace/example-Sonar-DSL/modules/example-main/target/sonar/jacoco-overall.exec
[INFO] [04:35:03.906] Sensor JaCoCoOverallSensor (done) | time=194ms
[INFO] [04:35:11.013] JaCoCoSensor: JaCoCo report not found : /home/acme/workspace/example-Sonar-DSL/modules/frontend/target/jacoco.exec
[INFO] [04:35:11.013] JaCoCoItSensor: JaCoCo IT report not found: /home/acme/workspace/example-Sonar-DSL/modules/frontend/target/jacoco-it.exec
[INFO] [04:35:11.179] JaCoCoSensor: JaCoCo report not found : /home/acme/workspace/example-Sonar-DSL/target/jacoco.exec
[INFO] [04:35:11.179] JaCoCoItSensor: JaCoCo IT report not found: /home/acme/workspace/example-Sonar-DSL/target/jacoco-it.exec

这是声纳的Java插件中的一个错误吗?我认为,当由不同人员配置的其他3个工具始终显示不同的值时,声纳报告的指标不太可能是正确的。

共有2个答案

国言
2023-03-14

覆盖率指标似乎已经自我修复。它现在报告正确的值——顺便说一句,我们在同一天将JDK升级到最新的补丁版本(8u92)。

这表明JaCoCo传感器根据JRE无法正常工作,但需要更多的调查。

华乐逸
2023-03-14

以下是计算“单元测试覆盖率”度量的方法:

  • NUMBER_OF_LINES=行数条件数。
  • COVERED_LINES=NUMBER_OF_LINES-(未覆盖的行数未覆盖的条件数。

覆盖率= (100 *覆盖的行数)/行数。

 类似资料:
  • 我有一个问题,在声纳Qube v6.7中,线路覆盖范围低于哈科报告。 当我打开声纳时,我的类文件有很多未覆盖的行。打开 jacoco 报告时,它显示这些行已覆盖。 我正在使用gradle插件。(v2.6) 有什么想法可以是问题吗?

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

  • 我们有一个多模块的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

  • 我已经看了一段时间关于stackoverflow的不同文章和答案,但我还没有找到适合我的情况的有效解决方案。我对jacoco、maven和sonar如何一起创建报告的理解肯定有问题,所以我要寻求帮助。 我有一个多模块maven项目,其结构如下(稍微简化了一下): 请允许我扩展一下。父模块只是一个带有整个依赖项及其版本的pom。这个pom被用作level1的每一个其他模块的父模块(直接位于根下面)。

  • 我正在尝试使用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