使用 xctool 在没有模拟器的情况下进行测试
Testing without simulator using xctool
我正在尝试 运行 在没有模拟器的情况下使用 xctool 进行单元测试。我按照 this comment 的指示,在测试目标的常规选项卡中将 'Host Application' 设置为 None。
当我 运行 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 是测试目标的成员。为什么会发生这种情况,我该如何解决?
解决了这个问题,this post 帮了大忙。
我的测试用例设置方法像这样初始化故事板
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:DEVMainStoryboardName
bundle:nil];
问题是将 nil 传递给 bundle 参数,它使用的不是测试目标中使用的主包 -- 因此您必须通过编写[=13= 来指定您要使用测试包]
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:DEVMainStoryboardName
bundle:[NSBundle bundleForClass:[self class]]];
然后不要忘记将情节提要作为目标的一个成员。
我正在尝试 运行 在没有模拟器的情况下使用 xctool 进行单元测试。我按照 this comment 的指示,在测试目标的常规选项卡中将 'Host Application' 设置为 None。
当我 运行 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 是测试目标的成员。为什么会发生这种情况,我该如何解决?
解决了这个问题,this post 帮了大忙。
我的测试用例设置方法像这样初始化故事板
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:DEVMainStoryboardName
bundle:nil];
问题是将 nil 传递给 bundle 参数,它使用的不是测试目标中使用的主包 -- 因此您必须通过编写[=13= 来指定您要使用测试包]
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:DEVMainStoryboardName
bundle:[NSBundle bundleForClass:[self class]]];
然后不要忘记将情节提要作为目标的一个成员。