iOS測試與集成工具總結

jopen 9年前發布 | 27K 次閱讀 IOS 測試工具

原文  http://www.infoq.com/cn/news/2015/04/ios-testing-ci

Giovanni Lodi 是來自澳大利亞的一名iOS開發者,最近他 總結 了iOS平臺上單元測試、驗收測試的工具,分析了它們的優缺點,以及支持iOS App的持續集成平臺。

蘋果官方工具

XCTest 是蘋果在iOS 7和Xcode5引入的一個簡單而強大的測試框架,它的測試編寫起來非常簡單,并且遵循 xUnit 風格。XCTest的優點是與Xcode深度集成,有專門的Test導航欄,但因為受限于官方測試API,因此功能不是很豐富。

UIAutomation 是蘋果提供的UI自動化測試框架。測試使用Javascript編寫,但是使用起來有些乏味。

蘋果對持續集成的支持,則體現在 Xcode Bots 上。我們能配置Xcode Bots來設置觸發器,來替我們運行測試或自動將代碼上傳到服務器上。

單元測試的開源庫

在開源社區里,大家對新事物接受得很快,一些好的東西也經常病毒性的擴散。iOS開源社區也是這樣,比如,它的測試編寫趨勢是使用xSpec風格,這是從Ruby測試庫 RSpec 借鑒而來的。

Kiwi 是對XCTest的一個完整替代,使用xSpec風格編寫測試。Kiwi帶有自己的一套工具集,包括 expectationsmocksstubs ,甚至還支持 異步測試

Specta 與Kiwi功能相似,但在架構上非常不同。Kiwi注重功能的整合,而Specta則注重模塊化。它本身只專注于運行測試,而將模擬、匹配等功能交給第三方。下面這些一些開源測試組件,它們能與Specta和Kiwi框架搭配使用:

  • Expecta :匹配程序框架。
  • OCHamcrest :匹配程序框架。
  • OCMock :模擬測試框架。
  • OCMockito :模擬測試框架。
  • OHTTPStubs :模擬網絡請求的庫,基于block的語法來匹配URL。
  • Nocilla :模擬網絡請求的庫,使用鏈式API。

Quick 是一個使用Swift開發的新測試框架,對測試使用Swift編寫的App非常友好。它還有一個 Nimble 庫用于編寫匹配模式。

驗收測試的開源庫

KIF (Keep It Functional)是用Objective-C編寫的用戶界面測試框架。KIF tester使用了私有API來了解App中的視圖層級。缺點是運行較慢。

Subliminal 是另一款與XCTest集成的框架。與KIF不同的是,它基于UIAutomation編寫,旨在對開發者隱藏UIAutomation中一些復雜的細節。不過它最后更新日期是2014年2月,可能已停止更新。

Calabash 是跨平臺開發工具Xamarin推出的一款測試工具。它使用BDD風格來編寫驗收測試。它的優點是支持跨平臺(需使用不同的庫),聲明式的測試風格非常易于讀寫。缺點是不夠穩定并且運行速度慢。

持續集成平臺

這里列出的持續集成工具都是基于云平臺的,因為自己搭建類似 Jenkins 這樣的持續集成環境代價高昂。

下面的列表是目前支持iOS的主流CI平臺。

它們間的不同在于價格、配置工作,以及上手難易程度。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!