我们有AzureDevops构建管道。我们有以下步骤。
- 为声纳Qube准备分析
- 运行单元测试
- 运行集成测试
- 运行代码分析
对于#4,当我们尝试运行代码分析时,它从SonarQube扫描仪中给出了一些奇怪的错误。
java.lang.IllegalStateException:第 92 行超出文件中的范围
但是文件只有 90 行代码。我不知道它为什么要抱怨这个?
SonarQube 扫描仪失败,线路超出范围
通常,此问题发生在一个行数下降的文件上,然后声纳使用缓存,这就是它查找超出范围的行的原因。
就像user1014639说的:
问题是由于生成的旧代码覆盖率报告 在更新代码之前。生成覆盖范围后已修复 再次报告。因此,还请确保任何覆盖范围报告 清除上次运行中留下的并新建 覆盖率报告已到位。
因此,请尝试运行命令行:
mvn clean test sonar:sonar
以清理旧报表。
此外,如果上述对您没有帮助,您应该确保分析的源代码与用于生成覆盖率报告的源代码严格相同:
查看此线程以获取一些详细信息。
希望这有帮助。