使用 Xcode Server 持續整合建置

本篇文章目標:將安裝 OS X Server,並啟動 Xcode Server,接著建立一個 Bot 測試 iOS App (可執行 Unit Testing 與 UI Testing),及查看執行後的報告,包含測試的覆蓋率 (Code Coverage)。

我們將繼續使用 使用 Xcode 執行 UI 自動化測試 範例說明,透過 Xcode Server 持續整合測試 App。

環境需求

作業系統環境需求: OS X El Capitan 10.11 以上 與 iOS 9 以上。

本文使用安裝 Xcode 7.1.1 與 OS X Server 5.0.15,並使用 OS X El Capitan 10.11.1 作業系統。

 

安裝 OS X Server 並啟動 Xcode Server

安裝 OS X Server (價格通常為 19.99 美金),如果是 iOS 或 Mac 開發者則為免費。

開啟 OS X Server 後,在左側選單選擇 Xcode,接著點選「選擇 Xcode …」按鈕,選擇 Xcode 應用程式,最後開啟右上角開關來啟動 Xcode Server。

XCS_1

 

新增 Server 至 Xcode

開啟 Xcode 到設定頁面 (Xcode > Preferences …),選擇「Accounts」,點選左下角的「+」按鈕後,選擇「Add Server …」。

AddServer_1

 

選擇 Server 位址,接著輸入使用者的帳號與密碼後就即可完成此設定。

AddServer_2

 

新增 Bot

Bot 是一個 Build Job 的描述,它告訴 Xcode Server 專案的 Repository 位址,要如何建置與要測試的裝置等設定。

開啟 Xcode 點選「Product」>「Create Bot…」,輸入 Bot 名稱,及選擇 Server。

Bot_1

 

選擇專案的 Repository 位址與分支 (branch)。

Bot_2

 

設置建置的週期,與要執行的項目 (設定項目細部說明可參考此篇文章),按下「Next」選擇要測試的裝置。

Bot_3

 

接著繼續照著步驟完成設定 Bot。

Bot_6

 

執行建置與測試

新增 Bot 後選取剛建立的 Bot,點選右上角的「Integrate」按鈕,執行建置與測試。

Run_1

 

執行結果報告

執行完後,產生的報告如下圖所示,報告中會顯示這次建置的相關錯誤或警告訊息,以及執行幾項測試通過與失敗的數量、每條測試案例 (Test Case) 測試結果、測試覆蓋率、測試設備等資訊。

Report_1

 

亦可顯示最近的幾次測試測試記錄,包含每次測試通過與失敗結果,以及測試覆蓋率的趨勢圖,讓我們可以更清楚軟體目前的品質。

Report_2

 

使用 Web 查看測試結果

除了透過 Xcode 查看執行的測試報告,也可透過瀏覽器來查看結果,輸入主機名稱或輸入 https://127.0.0.1/xcode。

除了原本可以在 Xcode 中觸發建置,我們也可透過 Web 介面手動點選「Integrate」按鈕來觸發建置。

Web_1

 

點選「Big Screen」按鈕,可以顯示 Dashboard,可以將它投影至電視上,讓開發團隊清楚的知道建置狀態。

Web_2

 

參考資料:

1. Continuous Integration and Code Coverage in Xcode – WWDC 2015 – Videos – Apple Developer

2. Continuous Integration with OS X Server and Bots — Medium

3. <Cocoa Papa Anton – Setting up Xcode 6 and Apple Server 4.0 for Continuous Integration with Cocoapods

4. Xcode Server Tutorials: 1. Getting Started – honza dvorsky

5. Xcode Server Tutorials: 2. Integrations – honza dvorsky

廣告

One thought on “使用 Xcode Server 持續整合建置

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s