SonarQube 是常見的程式碼分析工具,本篇介紹如何透過 Docker 進行 .NET Core 程式碼分析;
並搭配 Coverlet 產生程式碼測試覆蓋率分析,一併傳送至 SonarQube。
SonarQube
如果沒有 SonarQube 環境的話,可透過以下 docker 指令,快速啟動 SonarQube:
1 | docker run --name SonarQube -p 9000:9000 sonarqube |
啟動後,用瀏覽器打開 http://localhost:9000/ 就能看到 SonarQube 站台。
預設帳號/密碼為:admin
/ admin
登入後,可新增 SonarQube 專案,步驟如下:
分析報告要上傳到 SonarQube Server 時,需要用到
Project Key
及步驟 8 的Token
。
Dockerfile
build-unit-test.dockerfile
1 | FROM mcr.microsoft.com/dotnet/core/sdk:2.2 |
Docker Image 建置指令:
1 | docker build -f build-unit-test.dockerfile . |
前一篇文章 Docker 教學 - .NET Core 測試報告 (Coverlet + ReportGenerator) 有基本介紹一下 Coverlet,本篇就不再贅述。
- 啟動 SonarScanner
- /k
SonarQube 的Project Key
是必填欄位。 - /d:sonar.host.url
是 SonarQube Server 的位置。 - /d:sonar.login
SonarQube 的Token
,錯誤的話無法成功上傳到 SonarQube Server。 - /d:sonar.exclusions
忽略程式碼分析的檔案或目錄。可用,
隔開指定多個 Patterns。
此例忽略*.js
、*.ts
及*.css
的檔案,如果要分析*.js
、*.ts
或*.css
,還需要在Dockerfile
安裝node.js
。 - /d:sonar.cs.opencover.reportsPaths
指定匯入 OpenCover 格式的測試報告路徑。可用,
隔開匯入多個檔案。 - /d:sonar.coverage.exclusions
忽略測試覆蓋率分析報告的檔案或目錄。可用,
隔開指定多個 Patterns。
- /k
- 結束 SonarScanner
- /d:sonar.login
SonarQube 的Token
,錯誤的話無法成功上傳到 SonarQube Server。
- /d:sonar.login