[Tools] 使用Jenkins打造Continuous Integration Server (2) - 整合單元測試

在上一篇文章中,我們介紹了如何開始在Jenkins內建立我們的每日建置工作,它可以幫助我們在確認在Version中所commit的程式碼是可執行的,作為確保Version Control內程式品質的最後一道防線,在建置失敗時也可以及時的發信通知,而在今天的例子之中,將會繼續介紹如何在Jenkins中整合UnitTest,讓程式碼除了可建置外,也能確定所進行的更動並沒有破壞原本stable的程式碼。

前言

上一篇文章中,我們介紹了如何開始在Jenkins內建立我們的每日建置工作,

它可以幫助我們在確認在Version中所commit的程式碼是可執行的,

作為確保Version Control內程式品質的最後一道防線,在建置失敗時也可以及時的發信通知,

而在今天的例子之中,將會繼續介紹如何在Jenkins中整合UnitTest,

讓程式碼除了可建置外,也能確定所進行的更動並沒有破壞原本stable的程式碼。

實際演練

在伺服器上安裝Visual Studio

為了讓CI Server可以使用Mstest進行單元測試,

必須在伺服器上先按裝Visual Studio,使伺服器端可以使用command指令呼叫MsTest.ex

安裝MsTest Plugin & MsTest Runner Plugin

進入Jenkins首頁後,點選左邊的管理Jenkins,再選擇管理外掛程式

Jenkins:選擇管理外掛

點選可用的,勾選MsTest PlugIn

Jenkins:選擇MsTest PlugIn

再繼續勾選MsTestRunner PlugIn,選擇安裝並重啟

Jenkins:選擇MsTest Runner PlugIn

設定MsTest參數,回到首頁點選左邊的管理Jenkins,再選擇設定系統

Jenkins:設定系統

找到MsTest區塊,點選Add MsTest,輸入設定 (此處以.Net 4.0為例)

Jenkins:設定MsTest

設定專案進行UnitTest

回到Jenkins首頁,點選我們的專案.Net Solution Daily BuIld,點選設定

Jenkins:選擇專案設定

找到Build區塊,點選Add build step,選擇Run unit test with MSTest

Jenkins:新增建置步驟

選擇MsTest 4.0,輸入UnitTest Dll位置,輸入測試結果檔案名字

Jenkins:UnitTest設定

找到Post-build Actions區塊,點選Add Post-build Action,選擇Publish MsTest test result report

Jenkins:設定UnitTest結果呈現

輸入測試結果位置,轉換成報表呈現在CI Server上

Jenkins:設定UnitTest結果檔位置

觀看結果

進入專案首頁,我們可以看到在畫面上出現了測試結果和測試趨勢圖

Jenkins:Project Report

點擊進去之後我們可以看到測試的詳細資料

Jenkins:UnitTest Report

結語

在今天的文章之中,介紹了如何整合MsTest到我們的CI Server之中,

當然也可以選用自己慣用的Test Framework,Jenkins提供了許多Plugin來方便整合並呈現報告,

現在我們的CI Server擁有了Daily Build和UnitTest,

我們就再也不需要擔心程式從Version Control下載回來沒辦法Build,

或是不小心將程式碼改壞又沒人發現的情況發生囉!

下次我將繼續向大家介紹,如何整合靜態程式碼分析工具,來為Code Quality把關,

歡迎大家提出任何問題,一起討論或提供指教喔 ^_^