[SonarQube] 為.NetCore應用加上程式碼品質分析

為.NetCore應用加上程式碼品質分析

SonarQube官方網站

以下已.NetCore為例,簡單架設、運行,並紀錄過程


基本安裝/使用

1.有兩種架設方式

  • 自行下載、設定、執行(需要Java JDK 11以上)
  • 從Docker

2.下載完成後,執行 StartSonar.bat

3.若遇到找不到java之類的錯誤,設定環境變數也沒用時,可以試著從這邊指定路徑

4.打開網址 http://localhost:9000/,應該可以就可以看到SonarQube的網站啟動了

5.新增一個Project,並且保存好key

6.選擇程式語言

7.在要執行的裝置上安裝tool

dotnet tool install --global dotnet-sonarscanner

8.接著回到要分析的專案上,先啟動分析

dotnet sonarscanner begin /key:<ProjectKey> /name:<ProjectName> /d:sonar.key=<Key> /d:sonar.host.url=<Url>

9.執行要做的事情

dotnet build
dotnet test

10.結束分析,開始上傳結果到SonarQube

dotnet sonarscanner end

11.回到SonarQube,可以看到報告都呈現在上面了


加上Test Code Coverage

1.這邊使用 Coverlet 來產生測試涵蓋率的結果,先在要執行分析的環境安裝

dotnet tool install --global coverlet.console

2.需要產生報告的專案也需要加上nuget package

dotnet add package coverlet.msbuild

3.接著與上面第7步驟雷同,不過我們調整下指令

  • /d:sonar.cs.opencover.reportsPaths - 指定report的路徑,多個檔案可以用逗號分隔
dotnet sonarscanner begin /k:"<ProkectKey>" /d:"sonar.host.url=<SonarUrl>" /d:sonar.login=<SonarKey> /d:sonar.cs.opencover.reportsPaths="<Project>.Tests/opencover.xml,<Project>.Tests.E2E/opencover.xml" /d:sonar.scm.provider=git

4.以及執行測試的指令

dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput="opencover.xml"

5.其餘部分皆相同,接著只要再執行 dotnet sonarscanner end,就能在SonarQube上看到測試涵蓋率了


簡單筆記一下過程,省的下次要再花時間找指令

和步驟

 

2020/0420 補充

可以更改為中文語系