使用 xctool 在没有模拟器的情况下进行测试
Posted
技术标签:
【中文标题】使用 xctool 在没有模拟器的情况下进行测试【英文标题】:Testing without simulator using xctool 【发布时间】:2016-07-06 10:18:14 【问题描述】:我正在尝试使用 xctool 在没有模拟器的情况下运行单元测试。我按照this comment 的指示,在测试目标的常规选项卡中将“主机应用程序”设置为无。
当我运行 xctool -project MyProject.xcodeproj/ -scheme MyProject test
时,我得到了这个错误。
<unknown>:0: failed: caught "NSInvalidArgumentException",
"Could not find a storyboard named 'Main' in bundle NSBundle
</Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/
Developer/SDKs/iPhoneSimulator9.2.sdk/Developer/usr/bin> (loaded)"
我确保 Main.storyboard 是测试目标的成员。为什么会发生这种情况,我该如何解决?
【问题讨论】:
【参考方案1】:想通了,this post 帮助了。
我的测试用例设置方法像这样初始化故事板
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:DEVMainStoryboardName
bundle:nil];
问题是将 nil 传递给 bundle 参数,该参数使用的是不是在测试目标中使用的主包——所以你必须通过编写来指定你想要使用测试包
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:DEVMainStoryboardName
bundle:[NSBundle bundleForClass:[self class]]];
然后不要忘记将情节提要作为目标的成员。
【讨论】:
以上是关于使用 xctool 在没有模拟器的情况下进行测试的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有嵌入式服务器或新集群的情况下模拟 couchbase 进行验收测试?
在构建脚本中使用 xctool 和 xcodebuild 进行代码签名后,ITC 上的代码签名权利无效