2016-04-22 98 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

默認的正則表達式應該排除具有指定名稱的測試。將其更改回默認值,併發布鏈接至跑步者輸出,如果沒有任何專有的話。 –

相關問題