我的单位测试目标在Xcode 7上崩溃。
我使用指定的应用委托类对我的项目执行单元测试,这与我的常规应用委托不同。 UnitTestAppDelegate
不是应用目标的成员,只是测试目标的成员。
在Xcode 6中,它正常工作,使用了正确的委托,但在Xcode 7(beta 6)中,当尝试加载测试委托时,应用程序崩溃了。我使用iOS 8和9的模拟器进行测试。
应用目标不知道该文件:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to instantiate the UIApplication delegate instance. No class named UnitTestAppDelegate is loaded.'
我的main.m
文件如下所示:
int main(int argc, char* argv[])
{
int returnValue;
@autoreleasepool
{
if (NSClassFromString(@"XCTest") != nil)
{
//use the test delegate
returnValue = UIApplicationMain(argc, argv, nil, @"UnitTestAppDelegate");
}
else
{
//use the normal delegate
returnValue = UIApplicationMain(argc, argv, nil, @"AppDelegate");
}
}
return returnValue;
}
我还附上了我的方案配置的屏幕截图(运行和测试是在同一个方案中,虽然我也尝试将它们分开)。
将我的UnitTestAppDelegate
添加为应用目标的成员会修复崩溃,但我显然不想将该文件添加到我的应用中。
其他人遇到过这个?
有什么想法吗?
答案 0 :(得分:0)
请参阅此相关评论,了解与Xcode 7测试版6中所见相同的问题:http://qualitycoding.org/app-delegate-for-tests/#comment-63240