在开发iOS大项目的时候,由于模块太多,每个功能的模块也太多,在后续测试调试的时候,遇见了bug,就会花比较长的时间去定位bug所在的类或者所在的函数.如果使用了单元测试便可以缩小查找bug的范围.

XCode自带单元测试的命令行工具,可以编写UnitTest文件来自动测试工程,下面来介绍一下它的一些些用法.

首先得确定有xcodebuild命令(跳过,都是iOS开发者,肯定装了XCode咯)

$xcodebuild

肯定没这么简单,假设当前目录是有XCode的工程的,那么这个命令就会执行与在xcode里面点击build一样的效果.

使用xcodebuild运行测试

xcodebuild 命令就是执行了 XCode 里面的build,不过这个命令有一些其他的参数,用法太多这儿就不解释了.总之给他加点儿不同的参数就可以做不同的事情.使用 test 来测试.用-scheme指定操作的scheme.用 -destination 指定target.要在本地 iPhone 5模拟机 “iPhone 5” 测试某个工程的某个测试,使用如下命令来指定目标和架构:

xcodebuild test -project rct6updater.xcodeproj -scheme rct6updaterTest -destination 'platform=iOS ,name=iPhone 5'

如果想对真机操作,可以按照名称或id.比如,我的测试机叫做”VikingWarlock 5”,可以这样来测试代码:

xcodebuild test -workspace xuanwheel/xuanwheel.xcworkspace -scheme xuanwheelTests -destination 'platform=iOS,name=VikingWarlock 5'

测试也可以在 iOS模拟器上运行.使用模拟器可以应对不同的外形因素和操作系统版本.例如:

xcodebuild test -workspace xuanwheel/xuanwheel.xcworkspace -scheme xuanwheelTests -destination 'platform=iOS Simulator,name=iPhone,0S=7.0' -destination 

如果测试失败,xcodebuild 会有红色的 FAIL 提示,修改修改测试的代码,多加一些提醒,这样可以更方便的定位错误点.

等下

之前是-project的,怎么突然使用了-workspace嘞?因为我的工程使用cocoaPods了,所以测试的时候要使用workspace才行.