目錄
一、單元測試報告
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文件
二、代碼覆蓋率
參考以下資料
需要在在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
顯示(注意,這個腳本有時效性,下次再登錄時還得重新輸入一遍)