[Visual Studio]測試專案的分類
前言
在之前的文章:[測試]自動化測試經驗分享- MS TechDays 2011 BoF內容有提到,自動化測試常犯的錯誤:
龜速測試:
單元測試專案與整合測試專案沒有分開。單元測試應該在任何環境底下(包括沒有資料庫、沒有網路等情況…)可以獨立且迅速運行。整合測試因為會需要外界的service,資料,檔案等等資源的存取,還外加需要初始化與還原環境跟資料,所以相當耗時。
這邊針對的是在CI的環境上,做自動測試時,應該將單元測試專案與整合測試專案分開,單元測試專案會放在auto-build的trigger裡面,每一次的checkin,跟著auto-build來一起執行,因為執行速度快,而且執行結果一翻兩瞪眼,可以在最快的週期裡面,知道這一次的checkin是否有造成非預期的錯誤。
而這一篇文章要提的,則是for developer在日常開發過程中,自己撰寫整合測試與單元測試的程式碼時,如何分開測試。
如何分開
先來看在測試的選項中,有什麼可以選?
是的,只有『目前內容中的測試』、『整個方案中的所有測試』跟『所有受影響的測試』…而我們的需求是『我在開發中只想快速的測試單元測試專案裡面的單元測試程式碼,最後要checkin之前,再檢查全部的測試結果。』
舉個例子,現在我的專案有130個測試案例:
即使按照專案排序,也無法只執行選取的測試方法。
為了這問題,我還上去MSDN forum發問:如何將單元測試專案與整合測試專案分開執行?,感謝程湘之間大哥提供的解答,讓我至少可以手動的選擇我只要測試某個專案。
透過『測試=>視窗=>測試檢視』,開啟測試檢視視窗,
僅測試『單元測試專案』的結果
結論
如果你的單元測試跑的特別的慢,請確認是否測試的功能有與外部服務相依。也請務必將整合測試與單元測試專案拆開。只有快速、獨立的測試,才能讓developer維持對單元測試的熱忱。至於怎麼寫到與外部服務獨立,那就是developer自己應該做的功課。
blog 與課程更新內容,請前往新站位置:http://tdd.best/