使用xctool进行无模拟器测试

时间:2016-07-06 10:18:15

标签: objective-c xcode unit-testing xcode-storyboard xctool

我尝试使用 xctool 在没有模拟器的情况下运行单元测试。我设置了主机应用程序'根据{{​​3}}的说明,在测试目标的常规标签中显示为无。

当我运行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 个答案:

答案 0 :(得分:0)

想出来,this post帮助了。

我的测试用例设置方法初始化了这样的故事板

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:DEVMainStoryboardName 
bundle:nil];

问题是将nil传递给bundle参数,该参数使用的主捆绑包不是测试目标中使用的主捆绑包 - 所以你必须通过编写来指定你想要使用测试包

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:DEVMainStoryboardName 
bundle:[NSBundle bundleForClass:[self class]]];

然后不要忘记将故事板作为目标成员包含在内。