Home
Jenkins
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 環境,就不需要額外再設定。
※延伸閱讀
Jenkins 使用 Pipeline Utility Steps 來異動 json 檔案
RojerChen.2020.04.17
Jenkins 要怎樣才可以讀寫 appsettings.json 的檔案?
使用情境
網頁前端會讀取 appsettings.json 這個檔,並且將目前程式的版本顯示在網頁上。我希望每次使用 Jenkins 部屬程式的時候,可以將目前 Build 的版號更新到 appsettings.json,讓我的網頁前端可以知道目前的版本號是哪一個。
找了好久才發現到原來使用 Pipeline Utility Steps 就可以達到這樣的功能了。
Jenkins 要怎樣才可以讀寫 appsettings.json 的檔案?
使用情境
網頁前端會讀取 appsettings.json 這個檔,並且將目前程式的版本顯示在網頁上。我希望每次使用 Jenkins 部屬程式的時候,可以將目前 Build 的版號更新到 appsettings.json,讓我的網頁前端可以知道目前的版本號是哪一個。
找了好久才發現到原來使用 Pipeline Utility Steps 就可以達到這樣的功能了。
訂閱:
文章
(
Atom
)