XCTestとXcode5の単体テストを見ていて、Xcode5のInstrumentsで単体テストを実行する方法がわかりません...
具体的には、テスト中にリークを探したいと思います(この場合、これを自動化する必要はありませんが、明らかに便利です)。
可能?
これが最も簡単な方法だと思います。
Xcode6でそれを行う正しい方法は次のとおりです。
1)Xcodeプロジェクトで、「Products」フォルダーを表示し、「。xctest」製品を選択して右クリックし、最後にコンテキストメニューで「RevealinFinder」を選択します。
2)Instrumentsを起動し、選択したテンプレートを使用して新しいドキュメントを作成します。
3)ドキュメントに対して「ターゲットを選択...」を実行します
4)Xcodeが/Applications/Xcode.app/Contents/Developer/usr/bin/xctest
にあるテストを実行するために使用するツールをナビゲートして選択します(この場所はターミナルのxcrun -f xctest
を使用して見つけることができます)-Xcodeアプリ内をナビゲートするには「トラバースパッケージ」を有効にする必要があります。
5)Finderからステップ1で表示された「.xctest」製品の「引数」フィールドにドラッグアンドドロップします。これにより、絶対パスが入力されます。
6)「選択」をクリックします。
これで、Instrumentsからユニットテストを実行する準備が整いました。
テストしているMacアプリのターゲットに基づいて新しいターゲットを作成し、コンパイルするファイルにxctestクラスを追加しました。
次に、/ Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.frameworkをに追加しましたリンクするフレームワーク。
次に、そのパス$(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/FrameworksをRunpath Search Pathsに追加しました。
次に、main.mに次を追加しました。
XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"];
[suite addTest:[VideohogCachingTest testCaseWithSelector:@selector(testCompleteSequentialText)]];
[suite run];
これでテストが実行されましたtestCompleteSequentialTextクラスでVideohogCachingTest通常のアプリケーションとして実行する必要があったため、command + Rまたはこの場合はプロファイリングのいずれかでテストを実行できますcommand + Iを使用します。その後、ゾンビを捕まえて問題を追跡することができましたが、これは以前は不可能でした。すべてのテストを実行したい場合は、次のことができます。
XCTestSuite *suite = [XCTestSuite defaultTestSuite];
[suite run];