【Jenkins】.Net Core單元測試報告和代碼覆蓋率


一、單元測試報告

1. 使用logger參數

在我們使用vstext.console運行單元測試命令,加入/logger參數

"vstest.console.exe" "MyJenkins\MyJenkinsTests\bin\x64\Debug\netcoreapp3.1\MyJenkinsTests.dll" /logger:trx;LogFileName=TestResult_38.trx /EnableCodeCoverage

關於/logger參數

/logger:trx 爲固定寫法
;LogFileName=TestResult_38.trx 爲輸出的文件名,不能修改文件路徑

關於相對路徑

MyJenkins\MyJenkinsTests\bin\x64\Debug\netcoreapp3.1\MyJenkinsTests.dll Jenkins會自動找到當前的工作目錄,這是正確的寫法
MyJenkins\MyJenkinsTests\bin\x64\Debug\netcoreapp3.1\MyJenkinsTests.dll Jenkins會以爲是在盤符的根目錄下,比如會以爲是 D:\MyJenkins\MyJenkinsTests\bin\x64\Debug\netcoreapp3.1\MyJenkinsTests.dll

在這裏插入圖片描述

2. 測試結果趨勢圖

需要安裝 MSTest 插件,在構建後選擇 Publish MSTest test result report
在這裏插入圖片描述
在這裏插入圖片描述
選擇生成的單元測試文件,Build成功後會在項目界面出現趨勢圖表
在這裏插入圖片描述
在這裏插入圖片描述

3. 將trx文件轉成html文件

這裏需要用到輔助工具 TrxerConsole, 很遺憾該工具目前不提供全局工具下載方式,只能手動下載。注意不要直接下載Release頁面的exe文件,使用時會一直出錯,建議直接下載源碼在本地編譯使用

cmd調用命令

TrxerConsole.exe D:\Solfware\Jenkins\workspace\Code_Unit_Test_Result\TestResults\TestResult_38.trx

會在trx文件同目錄下出現同名的html文件
在這裏插入圖片描述

二、代碼覆蓋率

參考以下資料

Visual Studio Coverage Tools

需要在在vstest.console命令中添加/EnableCodeCoverage參數,最後會在TestResult文件夾下的某個文件夾中出現xxx.coverage文件
在這裏插入圖片描述

1. coverage文件轉xml文件

注意xxx.coverage文件只能被Visual Studio打開,所以需要將其轉換爲xml格式。這裏需要用到VS自帶的CodeCoverage.exe工具,一般它的目錄如下

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe

使用方法爲首先需要collect到對應的測試結果dll,然後analyze輸出.coveragexml文件,注意這裏的.coveragexml其實也是xml文件格式的一種,但是VS只能打開.coverage文件,打不開.coveragexml文件。這裏爲了方便演示,先準備好測試輸出的dll.coverge文件
在這裏插入圖片描述

可以先把 CodeCoverage.exed的路徑加到Path環境變量中

cd /d C:\Users\chao9441\Desktop\Tmp\coverage
CodeCoverage.exe collect /output:test.coverage UnitTest.dll
CodeCoverage.exe analyze /output:test.coveragexml test.coverage

這樣在同目錄下就會出現新的 xml格式覆蓋率文件

在這裏插入圖片描述

2. 將coveragexml文件轉換爲html文件

安裝 ReportGenerator 全局工具,這樣可以直接在cmd中調用

dotnet tool install --global dotnet-reportgenerator-globaltool --version 4.5.2

cmd調用一下命令生成html文件, 注意targetdir對應的是目錄,這裏我們可以新建一個hmtl目錄專門存放輸出文件

cd /d C:\Users\chao9441\Desktop\Tmp\coverage
reportgenerator "-reports:test.coveragexml" "-targetdir:C:\Users\chao9441\Desktop\Tmp\coverage\html\"

html文件結果
在這裏插入圖片描述

三、發佈html文件

1. HTML Publisher插件

默認在Jenkins中打開html會丟失格式,所以我們需要對其進行轉換,需要這個插件

HTML Publisher
可以正常顯示Jenkins workspace中各種html文件

在這裏插入圖片描述
在這裏插入圖片描述

關於HTML Publisher如何配置還是比較簡單的,網上資料很多

2. 問題

HTML Publisher因爲Jenkins的安全策略禁止了某些css樣式,所以有時還是無法正常顯示,要解決這個問題,需要轉到 Manage Jenkins->Script Console,在腳本里面加入這句話

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

之後運行腳本,然後再次Build之後就可以看到正常的html顯示(注意,這個腳本有時效性,下次再登錄時還得重新輸入一遍)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章