在開發程式時,都會包含對程式的單元測試,本機電腦可以執行單元測試,確保程式沒有被我們改壞。但在團隊協同開發時,團隊會頻繁簽入程式碼,每個人不一定都會執行單元測試成功後再簽入,這時候可以交由Jenkins幫我們依照排程進行單元測試,確保程式碼的覆蓋率沒有下降,單元測試案例也都是通過的,以確保專案程式的品質。
本範例的測試框架我使用的是NUnit
環境:
- Windows Server 2016
工具:
- Jenkins 2.98
- NUnit
步驟:
- Jenkins伺服器安裝NUnit Console
- Jenkins安裝NUnit外掛
- 增加建置步驟,加入執行單元測試指令
- 產生測試結果圖表
Jenkins伺服器安裝NUnit Console
到 NUnit下載頁下載最新版的NUnit Console,並安裝至Jenkins伺服器
預設安裝的路徑是 %ProgramFiles(x86)%\NUnit.org\nunit-console
Jenkins安裝NUnit外掛
Jenkins安裝NUnit外掛
建置完成後加入執行單元測試指令
在建置動作中,要在建置專案的指令後面,新增執行Windows批次指令,讓專案建置完之後執行單元測試
在這個範例我使用Bryan.Architecture.Utility.UnitTests
這個單元測試專案
呼叫NUnit Console.exe執行建置完的單元測試專案的dll
"%ProgramFiles(x86)%\NUnit.org\nunit-console\nunit3-console.exe"
"%WORKSPACE%\Bryan.Architecture\Bryan.Architecture.Utility.UnitTests\bin\Debug\Bryan.Architecture.Utility.UnitTests.dll" -result=TestResult.xml;format=nunit2
-result=TestResult.xml;format=nunit2
,這段指令可以在單元測試完之後產生Report,給Jenkins呈現測試結果圖表
產生測試結果圖表
在建置後動作,新增Publish NUnit test result report,然後填上剛剛上一個步驟設定的Report檔名(TestResult.xml)
觀察Console Output就可以看到有實際執行單元測試了
回到專案的首頁,就有單元測試最新的結果了
也可以看到有哪些單元測試案例被執行,最後執行的狀態為何