NightlyBuild每日構建

哈哈哈哈哈我撒發表於2010-11-11

每日構建(Nightly Build,也叫Daily Build), 是將一個軟體專案的所有最新程式碼取出,從頭開始編譯,連結,執行測試軟體包對程式碼進行單元測試並對主要功能進行測試,發現錯誤並報告錯誤的完整過程.每日構建是連續整合的一個最佳實踐,它要求每天至少構建軟體一次.因為對於許多大型專案來說,每次構建花掉的時間可能高達幾個小時,在白天進行構建可能會消耗 過多的計算機資源,對開發造成一定的影響,所以許多大型專案的每日構建是在夜間無人工作或者人比較少的時候進行的.所以Daily Build就成了Nightly Build.

1 什麼是dailybuild
daily build 網上譯為"每日構建",可我更喜歡喊它為"每日整合".daily build 就是把一個軟體專案的所有的最新的程式碼從配置庫中取出,然後從頭進行編譯,連結和執行。更甚者可以再執行測試包對軟體的主要功能進行測試,發現並報告錯誤的整個過程。最常見的是前面的過程。daily build 一般是在每日下班後半夜進行,前提是員工check in 最新的code到配置庫中。所以可以把daily build 戲稱為 nightly build。然後在第二天上班事分析build 的log,找出error並mail給所屬模組負責人,敦促解決(如果這一步能自動完成就更完美了)。以至於員工清晨最開心的事情就是郵箱裡找不到integrator的錯誤報告。按照上面的解釋,daily build 譯為“每日構建”,是很合適的。但daily build 的另一個重要功能就是驗證軟體中各模組關係是否正確,“每日整合”也是合情合理。

2 為什麼dailybuild
以下是daily build 給我們帶來的好處:
縮小查詢bug範圍
當修改了一個bug,daily build可以很快給出一個最新修改後的版本,以供員工使用和測試人員進行測試
通過daily build,使build過程完全自動化,只要一條命令就完成系統的build
daily build使所有人員可以得到最新最好的系統的可執行檔案
3 如何dailybuild
daily build 一定要具備一下幾點:自動、頻繁、完整
自動:所有的步驟都有指令碼自動完成,從check out 程式碼,編譯,連結,到執行等等相關步驟都是自動執行而沒有人工干預,要自動得乾乾脆脆。要知道,daily build 又稱為nightly build,是一個深更半夜讓CPU 100%工作的過程。
頻繁:不一定是每天build的次數越多越好,但必須保證每日一次,daily要名副其實。
完整:所有的檔案都要先clea在build,而不是不完美的增量編譯。要build的徹徹底底。
4 處理dailybuild結果
一般是在第二天上班的時候,分析昨天的build log,找出error並報告給相應負責人。如果專案組有嚴格的bug管理,可以將發現的bug加入管理體系中,相關人員會很快收到bug報告mail。BTW:bug和錯誤mail讓你不得不埋頭工作:)

相關文章