【问题标题】:fix file not found in Sonar JaCoCo reporting修复 Sonar JaCoCo 报告中未找到的文件
【发布时间】:2018-12-13 19:58:07
【问题描述】:

我想解决我的声纳日志中的警告:

INFO: Sensor Groovy JaCoCo [groovy]
INFO:   Checking binary directory: /home/project/target/classes
INFO: Analysing /home/project/target/jacoco.exec
INFO: Analysing /home/project/target/jacoco.exec
WARN: File not found: utils/Rule.groovy
WARN: File not found: com/acme/manager/Command.groovy
WARN: File not found: com/acme/manager/util/YamlReader.groovy
WARN: File not found: steps/DeployTest.groovy
WARN: File not found: /deploy.groovy

我的设置是:

x.sonar.projectBaseDir=.
x.sonar.sources=src,vars
x.sonar.tests=test/groovy
x.sonar.test.exclusions=test/groovy/com/acme/manager

某些警告是由排除文件引起的(这些文件在另一个声纳模块中进行评估)。但是其他的应该没问题。知道这里出了什么问题吗?

在声纳中,我覆盖了 src/com/acme/anything 下的文件,但不是来自 vars 文件夹(default 包)。然而,在 JaCoCo html 报告中,我有 default 包和 vars 文件夹的覆盖范围。

【问题讨论】:

    标签: sonarqube jacoco


    【解决方案1】:

    File not found 警告由 SonarGroovy 插件的AbstractAnalyzer.java 类编写。据我了解,该插件成功找到了您的 jacoco.exec 结果(其中包含那些无法找到的文件路径,例如 utils/Rule.groovy)。

    可能你没有正确设置你的sonar.sources,它应该包括你的groovy源代码的路径,如果你有Groovy源代码,还应该包括vars文件夹。默认情况下,sonar.sources 仅设置为 src,因此可能找不到您的 vars 文件夹的代码。您可以尝试将缺少的文件夹添加到源中,如下所示:

    sonar.sources=src,vars
    

    属性sonar.groovy.binaries 也是Groovy 代码覆盖所必需的(它应该指向已编译的groovy 类文件),如果您没有明确设置它,那么sonar.binaries 将用于查找Groovy 二进制文件。来自SonarGroovy plugin 网站的以下引用也可能会有所帮助:

    分析 JaCoCo 报告时,groovy 插件需要访问源二进制文件。因此,必须为分析配置属性sonar.groovy.binaries(二进制文件夹的逗号分隔路径)。对于 Maven 和 gradle 项目,该属性是自动设置的。

    【讨论】:

    • 我们使用 Maven,所以我相信 sonar.groovy.binaries 是自动设置的。
    • 我更新了我的答案。您可能必须明确让 Sonar 知道包含源代码的其他文件夹的存在。默认情况下,它只搜索src 文件夹。
    【解决方案2】:

    同时我找到了一些消息的原因:

    1. File not found: /deploy.groovy:由于sonar groovy plugin空包中的文件处理问题没有正确处理,请参阅issue #73
    2. File not found: steps/DeployTest.groovy:测试文件需要列在sonar.source下才能被识别。但是,如果将tests/groovy 添加到sonar.source,则它可能不会添加到sonar.tests,从而导致GroovySurefireSensor 中的资源问题: WARN: Resource not found: steps/DeployTest.groovy

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 2015-10-02
      • 2016-08-05
      • 1970-01-01
      • 2022-06-13
      • 2016-10-16
      • 2019-02-17
      • 2017-03-17
      • 2019-09-07
      相关资源
      最近更新 更多