2

我的单元测试目标在 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;
}

我还附上了我的方案如何配置的屏幕截图(运行和测试在同一个方案中,尽管我也尝试将它们分开)。

在此处输入图像描述

将 my 添加UnitTestAppDelegate为应用程序目标的成员可以修复崩溃,但我显然不想将文件添加到我的应用程序中。

其他人遇到过这个吗?

有任何想法吗?

4

1 回答 1

0

请参阅有关 Xcode 7 beta 6 中相同问题的相关评论:http: //qualitycoding.org/app-delegate-for-tests/#comment-63240

于 2015-09-04T07:06:08.723 回答