[关闭]
@pockry 2015-03-31T18:09:10.000000Z 字数 1417 阅读 2215

iOS测试与集成工具总结

移动 测试 持续集成

摘要:Giovanni Lodi是来自澳大利亚的一名iOS开发者,最近他总结了iOS平台上单元测试、验收测试的工具,分析了它们的优缺点,以及支持iOS App的持续集成平台。


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框架搭配使用:

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平台。

它们间的不同在于价格、配置工作,以及上手难易程度。

当然,这篇文章提到的工具并不是全部,如果你对iOS的测试和集成感兴趣,可以到这里留言和作者交流。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注