如何为具有多个项目的 .net 解决方案执行 MSBuild.SonarQube.Runner?

How to execute MSBuild.SonarQube.Runner for a .net solution which has multiple projects?

我已经使用以下设置 SonarQube:sonarqube-5.4MSBuild.SonarQube.Runner-2.0、VS 2013(目标 .NET Framework 4.5.1)、SQL Server 2014 Express、Windows 7 专业 SP1 64 位 OS.

我能够成功地为一个 .NET 项目 (.csproj) 执行 sonarqube runner 并生成结果。现在我想为具有许多 .csproj 条目的 .NET 解决方案 (.sln) 执行 MSBuild.SonarQube.Runner-2.0

文件夹结构如下:

RootFolder 有一个 .sln 文件,每个项目 (.csproj) 都在根文件夹内的单独文件夹中创建。每个项目的单元测试也创建在根文件夹内的单独文件夹中。例如:

RootFolder -> Project.sln
RootFolder -> ProjectABCFolder -> ProjectABC.csproj
RootFolder -> ProjectABCTestsFolder -> ProjectABCTests.csproj
RootFolder -> ProjectXYZFolder -> ProjectXYZ.csproj
RootFolder -> ProjectXYZTestsFolder -> ProjectXYZTests.csproj

你能帮我解决以下问题吗?

  1. 如何执行 .sln 文件 - 需要进行哪些输入/设置?
  2. 如何跳过单元测试项目?
  3. 如何包含单元测试项目?
  4. 如何执行 VS 代码分析?

此处涵盖了几乎所有内容,因为单元测试排除例外。

http://docs.sonarqube.org/display/SCAN/From+the+Command+Line

至 运行 对于整个解决方案,您应该能够 运行 从您的 RootFolder 中获取以下内容:

MSBuild.SonarQube.Runner.exe begin // Other args
msbuild /t:Rebuild Project.sln
MSBuild.SonarQube.Runner.exe end

至于你的单元测试题。大多数人选择不在项目中包含测试代码。这是通过 sonarqube UI: Administration->Scanner for MSBuild 中的正则表达式完成的。将此正则表达式更改为与您的测试项目不匹配的内容将导致它们被包含在内。