2016-04-22 94 views
2

我已将SonarQube设置为:sonarqube-5.4,MSBuild.SonarQube.Runner-2.0,VS 2013(目标.NET Framework 4.5.1),SQL Server 2014 Express,Windows 7 Professional SP1 64位操作系统。如何为具有多个项目的.net解决方案执行MSBuild.SonarQube.Runner?

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

该文件夹结构如下:

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代码分析?

回答

2

几乎所有这些在这里都是单元测试排除的例外。

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用户界面中的正则表达式来完成的:Administration-> Scanner for MSBuild。将此正则表达式更改为与您的测试项目不匹配的东西将导致它们被包含。

+0

感谢您的回复,我也这么做了。我已经添加了正则表达式“/.Tests/”来排除测试项目(ProjectABC.Tests.csproj,ProjectXYZ.Tests.csproj等),但仍在测试项目也正在评估,然后分析失败。如何从执行中排除测试项目? – Bhanu

+0

默认的正则表达式应该排除具有指定名称的测试。将其更改回默认值,并发布链接至跑步者输出,如果没有任何专有的话。 –

相关问题