使用CruiseControl.Net進行持續集成
一、什么是持續集成?
團隊開發需要進行集中的項目文件管理與有效的協調,采用源代碼管理工具協助管理。限定重要文件的訪問權限、使用悲觀鎖杜絕成員同時編輯同一份文件、 不允許長時間遷出文件等規則讓我們在某一時間段內非常愉快。但是慢慢的,有人抱怨“我獲取了源代碼怎么編譯錯誤?”。于是增加規定:遷入之前必須獲取最 新,然后再一次編譯,成功后方可遷入VSS。這種辦法是很不錯,但是工作繁瑣了,尤其對大型項目,更加的苦不堪言。
持續集成是一種實踐,可以讓團隊在持續的基礎上收到反饋并進行改進,不必等到開發周期后期才尋找和修復缺陷。通俗一點兒說,就是指對于開發人員的每 一次代碼提交,都自動地把代碼倉庫中所有代碼獲取下來,執行編譯、并自動運行所有的測試用例,如出現錯誤則通知人員這是一個失敗的提交。
二、為什么要持續化集成?
持續化集成工具便是服務于敏捷軟件開發的一個系列。它主要將原本分散,無序的工作流程,通過工具軟件有機的組織起來,并且在組織的過程中,參與開發設計測試的各個部門的人員都能從中獲取到自動化方面的優惠。使得團隊的工作效率大大提升。
持續集成強調完全自動化的、可重復的創建過程,其中包括每天運行多次的自動化測試。它讓開發者可以每天進行系統集成,從而減少了開發過程中的集成問 題。持續集成可以減少集成階段”捉蟲”消耗的時間,從而最終提高生產力。它使得絕大多數bug在引入的同一天就可以被發現。而且,由于一天之中發生變動的 部分并不多,所以可以很快找到出錯的位置。對于稍微大一點的項目,持續集成,每日發布將成為項目組的一項重要工作。
如果使用持續集成,它就能幫你跨越頻繁的部署的障礙。頻繁的部署是很有意義的,它能讓你的用戶很快的發現系統新的特性,然后給你針對這些特性迅速的反饋, 這樣就能讓你的開發循環有更好的協同工作。這就能讓你的用戶和你們的開發能更好的溝通。
持續集成的效果與你的測試集的質量是成正相關的,要找出那些很深層次的bug,意味著你得不斷提高你測試集的質量。
三、CruiseControl.Net是什么?
上面講解了什么是持續化集成,CruiseControl.Net就是一款由ThoughtWorks公 司提供給的輕量級的持續化集成工具。它能夠將代碼版本控制,單元測試,代碼規范檢查,項目的發布部署等工作步驟有機的組織起來,并且利用其調度性可作自動 化處理,它還有強大的日志記錄功能,能將集成結果及時地反饋給項目管理人員和項目開發人員。下面是CruiseControl.Net的工作流程圖:
在實驗部署中,CruiseControl.NET集成了如下功能:
- MsBuild集成編譯
- 電子郵件提醒功能
- Nunit單元測試報告
- 自動發布網站應用程序到指定目錄
其他相關資料:
- http://sourceforge.net/projects/ccnet/
- http://www.ibm.com/developerworks/cn/java/j-build/
- http://mylovejsj.blog.163.com/blog/static/38673975201041110425135/
- http://www.51crazy.net/Article/234.aspx