2

ユニット テスト ターゲットが Xcode 7 でクラッシュします。

通常のアプリ デリゲートとは異なり、指定されたアプリ デリゲート クラスを使用して、プロジェクトで単体テストを実行します。はアプリ ターゲットのUnitTestAppDelegateメンバーではなく、テスト ターゲットのメンバーです。

Xcode 6 では機能しており、正しいデリゲートが使用されていますが、Xcode 7 (ベータ 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するとクラッシュは修正されますが、明らかにファイルをアプリに追加したくありません。

他の誰かがこれに遭遇しましたか?

何か案は?

4

1 に答える 1

0

Xcode 7 ベータ 6 で見られるのと同じ問題に関するこの関連コメントを参照してください: http://qualitycoding.org/app-delegate-for-tests/#comment-63240

于 2015-09-04T07:06:08.723 に答える