在Sonar JaCoCo报告中找不到修复文件

问题描述 投票:1回答:2

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

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

一些警告是由于排除文件(这些文件在另一个Sonar模块中评估)。但其他人应该没有问题。有什么想法在这里出错吗?

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

sonarqube jacoco
2个回答
1
投票

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

  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

0
投票

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

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

sonar.sources=src,vars

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

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

© www.soinside.com 2019 - 2024. All rights reserved.