透過Jenkis做為自動化Compile跟Deployment的管理工具,是非常棒的一件事情


視覺化的過程,可以很方便將這樣的操作轉移給維護人員管理


這次,剛好因為專案需求,需要補齊專案開發階段所缺少的Unit Test


也為了讓原始碼有一定的可靠度,提高自動化過程中偵錯的效率


決定將Unit Test也綁上Jenkis,讓每一次的版本更新都有一定的穩定度 



思維很簡單


1. Visual Studio Unit Test 本機可跑
2. Jenkis 加入vstest.console.exe支援
3. 透過Jenkis來執行Unit Test
4. 知道這次commit的程式碼,是否相容於目前版控的版本,且相對安全(跑過測試)






特別需要注意


1. 確認Unit Test專案的Web config有多少連線需要設定
  • Oracle的連線 : C:xxx11.2.0client_1networkadminxxx.ora
  • MSSQL的連線 : Web.config
  • DNS解譯 : Host file.
  • Firewall
 2.確認Compile跟Unit Test需要跑的編譯環境,這會影響跑出來是否正常


    Compile
  • c:xxxxxxxxxxxv4.0.30319MSBuild.exe
  • Platform=”Any CPU”
  • Build “Debug” or “Release”
    Unit Test
  • Framework:framework45 
  • /Platform:x86
 3.先在本機跑過,並且是用Command Line的方式跑過,模擬在Jenkis跑指令的結果


實際整合過程



1. 找出MSbuild.exe在哪個目錄內,通常會跟版本有關,也必須要用跟你Visual Studio(VS)一樣的設定,以免Command Line模式過不了


C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe

2. 下指令,用MSBuild把專案Build過,記得跟VS下一樣的參數 


C:>”C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe”
       /p:Platform=”Any CPU” “C:UsersxxxxxxXXX
_UnitTest.sln”


3.通常會跑過一整串密密麻麻的指令,最後停在這邊,確定這次是否有錯誤,秀綠燈就代表沒太大問題(0 Errors),頂多有些Warnings。
 


4.找出vstest.console.exe,下指令VSTest把專案Build過,記得跟VS下一樣的參數,同樣,也確認最後是否跑出綠燈


C:>“C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDECommonExtensionsMicrosoftTestWindowVSTest.Console.exe” 

/Framework:framework45 /Platform:x86 /Enablecodecoverage /InIsolation 

C:UsersxxxxxxXXX_UnitTestbinDebugXXX_UnitTest.dll”



5.做到這邊,至少可以確認這包專案是安全的,且產出的結果也符合預期,假設,後續的動作遇到問題,比較能釐清,是Jenkis那包專案在整合上,或是Jenkis所在主機環境的問題


6.透過SVN ( 或其他版本控制 ),將這包專案更新上SVN
  ( 通常,本機端更新上去的檔案,就是Jenkis編譯跟發佈的來源資料 )


7.安裝Vs TestRunner到Jenkis,這是蠻多人使用的套件,有一定的穩定度

8.安裝完畢後,必須先設定一些機本的路徑,方便之後套用



9.這邊主要是指定版本跟路徑使用
   
   如果有很多個VSTest的版本要設定,你可以用Name來區分不同版本,Path就指向不同檔案

   EX: VS 2012 / VS 2010 對應Microsoft Visual Studio 11.0Common7或其他版本

 


10.開個新的執行Project,名稱XXX Unit Test.


11.跟其他專案一樣,指定要從哪個SVN資料夾去找專案
 

12.利用MSBuild,透過Command Lin方式,指定專案路徑(*.sln)到Build File,用意跟步驟2意思是一樣的,這也是為什麼,特別強調要從本機Command Line先跑過,確保你了解版本跟參數沒用錯


13.新增一個VSTest.console區塊,指定VsTest Version。這邊指定的選項,來自於步驟9. Test Files指的是你要驗的Dll位置,通常在專案/Build/Debug(Release)/xxx.Dll


14.點開Advanced,前3個看自己需求,再決定是否要勾,重點是Platform跟.Net Framework Version 必須要跟VS設定值一樣,以免出現錯誤


14.完成上述的設定以後,就可以進行第一輪測跑,如果一切順利,Console就會看到一堆Passed的測試,當然,也可以直接看執行結果,藍燈就是正常,紅燈就哭了



測試的結果,可以綁定Report,作為簡單的測試報告

這邊,等有空再補摟…….待續




Leave a Reply

Your email address will not be published. Required fields are marked *