【Jenkins】外掛套件:VSTest Runner

  在 Jenkins 中使用 VSTest.Console 執行 Visual Studio 測試案例。

1、環境配置

1.1 Visual Studio

  VSTest.Console 沒有獨立安裝版本,在 Jenkins 伺服器主機上安裝符合開發環境的 Visual Studio。

2、Jenkins 套件管理

  由 Jenkins 主畫面依序點選「管理 Jenkins」 → 「管理外掛程式」,進入「Jenkins 套件」管理頁面。

01:Jenkins_Plugin_Manager

2.1 安裝 VSTest Runner plugin

  在 Jenkins Plugins:VSTest Runner 中按下【Archives】, 選擇取得舊有版本:VSTest Runner(1.0.4)

VSTest Runner(1.0.5)有嚴重 bug,無法顯示於 Jenkins 上。作者表示預期在下一版本進行修復。可參考 Jenkins Plugin Wiki 討論:VsTestRunner Plugin

02:Get_VSTestRunner_Plugin

  點選「進階」頁籤,在上傳外掛程式區塊中選取下載的「VSTest Runner(1.0.4)」hpi 檔案並按下【上傳】。

03:Upload_VSTestRunner_Plugin

  安裝完成後顯示「成功」,按下【當安裝完成且沒有工作正在執行時,重啟 Jenkins】重新啟動 Jenkins。

04:VSTestRunner_Plugin_Install

3、Jenkins 工具組態設定

  由 Jenkins 主畫面依序點選「管理 Jenkins」 → 「Global Tool Configuration」,進入「Jenkins 工具組態」設定頁面。

05:Jenkins_Global_Tool_Configuration

3.1 設定 VSTest Runner plugin

  頁面中有標示為 VSTest 的區塊(安裝 VSTest Runner plugin 產生的區塊),按下【新增 VSTest】,輸入「Name」與「Path to VSTest」。

  • Visual Studio VSTest.Console 預設路徑
    • 2015:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe
    • 2017:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

06:VSTestRunner_Plugin_Setting

4、工作組態設定

  由 Jenkins 主畫面依序點選「Lab.Jenkins_VisualStudio」(前面新增的工作名稱) → 「組態」,進入「工作組態」設定頁面。

4.1 建置

  點選「建置」頁籤,按下【新增建置步驟】 → 【Run unit tests with VSTest.console】(安裝 VSTest Runner plugin 產生的選項),選擇「VsTest Version」,輸入「Test Files」,按下【儲存】儲存工作組態設定。

  • VsTest Version:在【3.1 設定 VSTest Runner plugin】中設定。
  • Test Files:測試的 dll 路徑,路徑可以是相對路徑(相對於工作區域)或是絕對路徑,可以同時設定多組路徑。

07:Job_Configure_Setting_VSTestRunner

4.2 工作建置

  按下【馬上建置】,此時此項工作會使用 VsTest VersionTest Files 進行測試

  • VsTest Version:在【3.1 設定 VSTest Runner plugin】中設定,在【4.1 建置】中選擇。
  • Test Files:在【4.1 建置】中設定。

08:Job_Build

  在建置歷程的建置結果列表中,點選建置結果可以查看更詳細的建置紀錄。

  點選「Console Output」,進入「終端機輸出」頁面,可以看到此次此項工作使用 VsTest Version 對 Test Files 進行測試。

09:Job_Console_Output

嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。

如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!