声纳扫描仪问题计数不为';与SonarQube中显示的不匹配

声纳扫描仪问题计数不为';与SonarQube中显示的不匹配,sonarqube,sonarqube-scan,Sonarqube,Sonarqube Scan,我在带有SonarScanner(红色标记)的MSbuild日志中看到26253警告。它包括558个编译器警告,其余来自代码分析器 但是,我在SonarQube(蓝色标记)中只看到16396个问题 为什么有大约10000个问题的巨大差异,为什么这些问题没有在SonarQube中报告 这里有四种可能性(谢谢@Julian): 您项目中约10000个问题已“解决”为假阳性或无法修复。好的,这一数量的FP/WF问题不太可能发生,所以请继续 您设置了一些过滤器,以过滤掉一些问题。这是可能的,但10公里似

我在带有SonarScanner(红色标记)的MSbuild日志中看到26253警告。它包括558个编译器警告,其余来自代码分析器

但是,我在SonarQube(蓝色标记)中只看到16396个问题

为什么有大约10000个问题的巨大差异,为什么这些问题没有在SonarQube中报告

这里有四种可能性(谢谢@Julian):

  • 您项目中约10000个问题已“解决”为假阳性或无法修复。好的,这一数量的FP/WF问题不太可能发生,所以请继续
  • 您设置了一些过滤器,以过滤掉一些问题。这是可能的,但10公里似乎有点高,所以
  • 您看到的数字是SonarC问题的总数,加上编译器警告,再加上(在此处插入一些在构建过程中自动运行的其他检查程序),但只有与您的系统中活动的规则相关的问题才会反映在SonarQube中
  • MSBuild的SonarQube扫描程序可能会自动排除项目基目录之外的
    .cs
    文件

  • 这些都不适用,我运行了另一个项目。它报告4K问题,所有问题都与诊断规则有关,在SonarQube中,它只显示1.8K。因此,缺少2.2K问题。每当我第一次运行这个项目时,这种情况就会发生,因此一些问题不可能被标记为已修复或无法修复。此外,没有排除或过滤。所有规则在质量配置文件中都处于活动状态。如果某些.cs文件位于project base目录之外,则可能会从SonarQube中排除。查看Roslyn输出JSON文件并与SonarQube进行比较。检查Roslyn JSON文件,它们与SonarQube相同。但与扫描日志不同。我有两个analyzer,对于一些文件,analyzer A报告的问题会传递给SonarQube,但不是从analyzer B。但是analyzer B的相同规则也适用于其他一些文件(即在SonarQube中报告)。最后得到了原因。在MSBuild中,有时会多次生成一个项目。我的分析器没有为后续构建报告问题(这是故意的)。但问题最终是从Roslyn输出json文件发布的,该文件对于多次构建的项目是空的(因为我没有报告第二次构建之后的问题)。所以我没有看到SonarQube中多次构建的项目的问题。@Sarker我不确定我是否理解您的评估。您的意思是,对于多次获取的项目,Roslyn输出json将在每次构建时被覆盖,因此只保留最后一个版本,这可能比以前的构建(甚至没有)后出现的问题更少。是这样吗?