声纳Qube扫描仪因线路超出范围而失败



我们有AzureDevops构建管道。我们有以下步骤。

  1. 为声纳Qube准备分析
  2. 运行单元测试
  3. 运行集成测试
  4. 运行代码分析

对于#4,当我们尝试运行代码分析时,它从SonarQube扫描仪中给出了一些奇怪的错误。

java.lang.IllegalStateException:第 92 行超出文件中的范围

但是文件只有 90 行代码。我不知道它为什么要抱怨这个?

SonarQube 扫描仪失败,线路超出范围

通常,此问题发生在一个行数下降的文件上,然后声纳使用缓存,这就是它查找超出范围的行的原因。

就像user1014639说的:

问题是由于生成的旧代码覆盖率报告 在更新代码之前。生成覆盖范围后已修复 再次报告。因此,还请确保任何覆盖范围报告 清除上次运行中留下的并新建 覆盖率报告已到位

因此,请尝试运行命令行:

mvn clean test sonar:sonar

以清理旧报表。

此外,如果上述对您没有帮助,您应该确保分析的源代码与用于生成覆盖率报告的源代码严格相同:

查看此线程以获取一些详细信息。

希望这有帮助。

最新更新