[Jenkins]09-建置完成後執行單元測試,並產生測試結果圖表

在開發程式時,都會包含對程式的單元測試,本機電腦可以執行單元測試,確保程式沒有被我們改壞。但在團隊協同開發時,團隊會頻繁簽入程式碼,每個人不一定都會執行單元測試成功後再簽入,這時候可以交由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就可以看到有實際執行單元測試了

回到專案的首頁,就有單元測試最新的結果了

也可以看到有哪些單元測試案例被執行,最後執行的狀態為何