Home
Archive for
2021
DotNet Code Coverage Report integrate With SonarQube & Jenkins
RojerChen.2021.04.15
如果使用的 Visual Studio 不是 Enterprise 的版本,是沒有辦法看到 Code Coverage 的報告,不過我們還是可以透過 dotnet test、reportgenerator 來了解。如果想要把相關的結果整合到 SonarQube或是 Jenkins 可以這樣子處理:
- 產生 opencover 測試報告
首先還是透過 dotnet test 來產生報告
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=../TestReport/ ../../ - SonarQube 整合
執行 dotnet SonarQube.dll begin 的時候,要加入以下參數,輸入 xml 報告檔案位置,這樣整個執行完畢後,就可以將結果顯示在 SonarQube 上。
/d:sonar.cs.opencover.reportsPaths=path/coverage.opencover.xml - Jenkins
首先,Jenkins 要安裝 opencover plugin
安裝完畢後,就可以使用 publishCoverage 來載入 coverage.opencover.xml 檔案,這樣執行 Job 的時候,就可以看到該次的測試結果了。
※延伸閱讀
Jenkins:nuget restore 須留意 nuget.config 設定檔位置
RojerChen.2021.03.04
「奇怪,我不是已經改了 nuget.config 了嗎?為什麼使用 Jenkins 跑 nuget restore 還是會連到api.nuget.org?」
「因為執行nuget restore 的帳號不一樣」
依據說明,當我們在執行 nuget restore 的時候,會預設讀取 %AppData%\NuGet\NuGet.config
也就是 C:\Users\rojerchen\AppData\Roaming\NuGet\NuGet.config
但是當你使用 Jenkins 來執行的時候,使用的帳號是「nt authority\system」而不是「rojerchen」,而相對設定檔的路徑就變成 C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\NuGet\NuGet.config
這也就是為什麼不論我樣調整設定檔,最終都還是會連到 api.nuget.org。
只不過這樣要再去改環境設定檔也挺麻煩的,比較建議還是在 nuget restore 的時候,直接指定 nuget.config ,這樣日後重新安裝 Jenkins 環境,就不需要額外再設定。
※延伸閱讀
訂閱:
文章
(
Atom
)