簡介
構建伺服器是用來構建套用的專用機器。
優勢
受控、獨立、可重複
構建伺服器確保只有合適的代碼進入構建。開發人員在其本地機器上使用新的軟體產品,工具庫或者其他工具。安裝和卸載這些工具可能會留下 一些DLL,它們可能會被誤用到構建里。這會導致通常會遇到的那句話:“但是這個在我的機器上能構建。”沒有檢查的源碼也經常會聽到這句話。有了專用構建伺服器時,如果在build伺服器上無法構建,就一定是什麼地方出問題了。
另一個構建伺服器能防範的錯誤根源是創建一個發布構建,而不是調試構建。測試中,開發人員可能會構建包含額外嵌入信息的代碼來輔助調試。這樣的信息減緩執行速度,並且增加了套用的大小,但是在解決問題時又不可或缺。構建伺服器能夠被配置來以發布模式構建套用,這時會移除所有的調試信息,使得套用足夠小並且足夠快。構建還能輕鬆擴展,為多種目標硬體構建,比如32或者64bit。
強制執行單元測試
強制執行單元測試是構建伺服器的另一個職責。開發人員在提交代碼時很容易忘記運行單元測試,或者在變化很小時覺得不需要運行完整的單元測試。構建伺服器能夠強制驗證單元測試是否成功,如果在構建過程中任何單元測試失敗了,甚至會拒絕開發人員添加的代碼。
套用通常要求更多時間和數據敏感的測試,稱為集成測試。這些測試以某種方式和周圍環境互動,通常會從資料庫查詢數據。一般來說,這些測試要求資料庫伺服器上存在著一些特別的數據集,以支撐測試通過。
不僅僅要求特別的設定,這些測試還通常需要很長的運行時間。正確配置的持續集成伺服器能夠存儲一個測試資料庫,其中配置好了合適的數據,然後運行集成測試。花費大量時間的測試可以安排在下班時間運行。
保證代碼質量
構建伺服器提供了中央控制點來衡量代碼質量。在構建時,可以生成測試覆蓋率指標及其他代碼質量度量,提供進度和質量的增量分析。甚至可以在覆蓋率下降到某個百分比時拒絕代碼的更新。