MSBuild SonarQube运动员跳过自动生成的文件?

时间:2015-08-12 10:39:03

标签: c# msbuild sonarqube sonar-runner sonarqube-msbuild-runner

我已经设置了一个本地SonarQube 5.1.1服务器。我还安装了C#插件(版本4.1),以及MSBuild运行器(版本1.0)。然后,我在.NET代码库上为我目前正在进行的项目执行了两次单独的运行:

  1. 使用sonar-runner和C#插件
  2. 使用MSBuild运行器
  3. 两次运行都是通过CLI完成的。然而,这些运行产生了截然不同的结果。这是一个例子:在第一次运行中,SonarQube计算出的代码行数大约为956 000,而在第二次运行时,它被计算为“仅”约434 000.然后我做了一些挖掘,看起来像是后者跳过一些自动生成的文件。这些文件/类是由一个旧的,内部开发的ORM工具生成的。

    我认为除非另有说明 - 通过使用包含/排除模式 - MSBuild SonarQube运行器将分析给定项目中的每个单个.cs文件,但显然情况并非如此。

    是否有人遇到过同样的“问题”,有谁知道哪些自动生成的文件会自动从分析中排除?

1 个答案:

答案 0 :(得分:2)

我在Sonar .NET documentation中找到了一些信息,其中说明了以下内容:

某些类型的项目将自动从分析中排除。例如,Microsoft Fakes在构建期间生成其他项目。这些自动生成的项目将不会被分析。

由Visual Studio中的自定义工具生成的文件会自动从分析中排除,例如从.resx文件生成的xxx.Designer.cs文件:

我假设我们的内部ORM工具属于后一类。因此,这解释了为什么这些文件被排除在分析之外。