敏捷的乙個要點就是:快速反饋。 從最早的每日構建,到現在的持續整合,都是開發者為了迅速獲得系統反饋而採取的一系列措施。而且反饋資訊越來越快速,資訊要求越來越高。
一次整合的過程步驟大概如下:自動更新
->
編譯構建
->
自動測試
->
報告整合結果。需要使用者寫好各過程命令(比如更新版本),並在整合伺服器的支援下,把各過程自動串連起來。
目前可用的整合伺服器有很多種,
dstp
也對持續整合提供了支援。
dstp
為支援持續整合提供的功能如下。 1
.通過圖形介面設定整合命令,並能把命令按順序發到指定機器進行執行。完成版本更新,編譯構建,測試等實際過程。 2
.允許設定在整合結束/失敗
/成功/部分失敗中某種情況發生時,自動向指定人員傳送整合報告。在整合報告中,失敗的環節,自動以顯眼的紅色給予提示;自動顯示錯誤資訊,甚至包括哪行**出錯。 3
.可以設定整合週期,如每日/周
/月/,或者每隔固定分鐘後自動啟動整合。 4
.和svn
整合,可以自動感知
svn庫的變化。可以設定
svn每次修改後,自動啟動整合。在整合失敗,自動向**提交人和指定的專案人員傳送報告,催促迅速更正,保證**隨時可用。
設定整合命令:
dstp
通過圖形介面進行命令設定,設定過程簡單,通過滑鼠右鍵,就可以增/刪
/改命令(活動
),並設定命令的先後關係。如下圖,表示設定了幾個過程,更新版本後繼續編譯版本,編完版本後執行自動測試。
我們看下編譯版本這個命令如何設定的。雙擊編譯版本節點,彈出對話方塊如下圖
設定命令時,允許設定命令執行機器
(需要整合機器有安裝客戶端
)和預先設定環境變數。
dstp
會自動下發該命令到指定機器進行執行。並得到執行結果。
同時各命令的執行有先後順序,比如版本編譯沒成功,就進行版本載入測試是無效的,
dstp
能判斷各機器返回的執行結果是否成功或者失敗,並根據設定決定整合是否繼續下一整合步驟。
整合報告:
當整合各步驟完成,整合結束,
dstp
能根據預先要求向指定的專案人員傳送整合報告。
可以根據整合的結果選擇是否通知,可以設定通知接收人。
dstp
向通知接收人傳送的整合報告格式如下
在報告中,列出了本次整合各命令的執行時間,以及執行結果
. 對於失敗的命令,會以紅色顯目提醒。
點錯誤資訊檢視,系統會自動顯示本次整合的錯誤資訊。
從錯誤資訊可以看出,在
test.c
的第四行出現了錯誤
整合週期:
dstp
的整合伺服器可以設定整合週期,按規定時間自動啟動整合。同時,
dstp
和svn
緊密整合,可以自動感知
svn的變動。可以設定
svn每次修改後,自動啟動整合。在整合失敗,自動向**提交人和指定的專案人員傳送報告,催促迅速更正,保證**隨時可用。
關於持續整合,已經有很多論述。但真的實施起來的公司並不多。很多公司可能就只做到了每日構建,自動測試做的並不多。這是因為自動測試環境通常涉及到多台機器的配合,沒有乙個好的整合伺服器並不好施行;更重要的是,自動測試需要根據專案實際,進行適當的測試構造,而這方面的技術難度和工作量都不小。
當敏捷流行起來,測試驅動開發也在深入人心,測試的價值也越來越為人所認識。當大家慢慢意識到在測試,在整合投入精力是有價值時,持續整合也就開始流行,從而推動開發變得更加敏捷~~
敏捷質疑 持續整合
敏捷質疑 持續整合 q 我的產品是電信級的裝置,幾百人分成幾十個專案組在開發,各個專案組進度不統一,如何整合?a 你要做的其實跟技術無關,更多的是管理工作,就是制定你的產品級別的整合策略.這涉及到需求分析和發布計畫 依賴管理,價值和風險識別 開發方法 自頂向下還是自底向上,橫向分層還是垂直特性 整合...
敏捷質疑 持續整合
q 我的產品是電信級的裝置,幾百人分成幾十個專案組在開發,各個專案組進度不統一,如何整合?a 你要做的其實跟技術無關,更多的是管理工作,就是制定你的產品級別的整合策略.這涉及到需求分析和發布計畫 依賴管理,價值和風險識別 開發方法 自頂向下還是自底向上,橫向分層還是垂直特性 整合粒度劃分 完整特性的...
敏捷持續整合工具CruiseControl
持續化整合工具便是服務於敏捷軟體開發的乙個系列。它主要將原本分散,無序的工作流程,通過工具軟體有機的組織起來,並且在組織的過程中,參與開發設計測試的各個部門的人員都能從中獲取到自動化方面的優惠。使得團隊的工作效率大大提公升。cruisecontrol是乙個針對持續構建程式 專案持續整合 的框架,它包...