10

私はデータベースアクセスライブラリを開発していて、すでに作成された単体テストを使用してメモリリークをチェックしようとしています。

これらはSenTestingKitに基づくロジックテストであり、Xcode4.2で通常の方法で設定されます。Cmd-Uを使用して正常に実行できますが、Instrumentsから起動したり、Instrumentsを呼び出して検査したりする方法がわかりません。

どうすればこれを機能させることができますか?新しいケースを作成してアプリケーションに組み込む必要がありますか?

この質問はリークチェックユニットテストに関するものですが、SenTestingKit以前のものだと思います。)

4

2 に答える 2

10

この回答は、SenTest for OS Xから始まります。SenTestforiOSを機器で使用することに関心がある場合は、次のセクションに進んでください。

機器でのOSXユニットテスト

これは少し遅れていることに気づきましたが、今日はロジックテストで計測器を実行し、自分の環境で動作させる必要があったので、次のようにしました。

  1. Instrumentsを実行した状態で、新しいドキュメントを作成します。
  2. ドキュメントの[ターゲット]ドロップダウンから[ターゲット]を選択します
  3. 右下の[トラバースパッケージ]オプションをオンにすると、Xcodeパッケージの内部を掘り下げることができます。
  4. / Applications / Xcodeに移動し、/ Applications / Xcode.app / Contents / Developer /Tools/内でotestバイナリを見つけて選択します
  5. OBCJ_DISABLE_GCの値を環境変数として追加しYESます(GCを実行している場合はこれを行わないでください)
  6. DYLD_FRAMEWORK_PATH.octestパッケージを含むディレクトリを追加してポイントします
  7. DYLD_LIBRARY_PATHDYLD_FRAMEWORK_PATHと同じ値で追加します
  8. 作業ディレクトリを、.xcodeprojが存在するディレクトリに設定します
  9. 引数については-SenTest Self、.octestパッケージへのフルパスを使用してください

ロードするために追加のフレームワークが必要かどうか、およびコードディレクトリに読み取りが必要なテストファイルがあるかどうかによっては、一部の環境変数と作業ディレクトリが必須ではない場合があります。したがって、これらの手順が当てはまらない場合は、これらの手順を省略できます。

完了したら、ドキュメントを保存し、それを使用してテストを実行できるようになります。

InstrumentsでのiOSユニットテスト

OPが要件を明確にした後、iOSシミュレーターベースのプロジェクトを使用して、このための基本的な手順を確認しました。

iOSの場合、異なる実行可能ファイルをデバッグしているため、多少異なる構成が必要であり、異なるライブラリが必要になります。したがって、DYLD_FRAMEWORK_PATHには、.octestパッケージのディレクトリへのパスと、シミュレータのフレームワークのパスの両方が含まれます。後者は次のようになり /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/Developer/Library/Frameworks ます。使用しているシミュレータのバージョンに応じて、以下ではSDKPATHと呼びます。

  1. Instrumentsを実行した状態で、新しいドキュメントを作成します。
  2. ドキュメントの[ターゲット]ドロップダウンから[ターゲット]を選択します
  3. 右下の[トラバースパッケージ]オプションをオンにすると、Xcodeパッケージの内部を掘り下げることができます。
  4. 内部に移動し/Applications/Xcodeてotestバイナリを見つけ、/Applications/Xcode/Developer/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/Developer/usr/bin/それを選択します
  5. DYLD_LIBRARY_PATH.octestパッケージを含むディレクトリを追加してポイントします
  6. DYLD_ROOT_PATHSDKPATH(上記)だけをポイントして追加します
  7. IPHONE_SIMULATOR_ROOTSDKPATHで追加(上記)
  8. DYLD_FRAMEWORK_PATH.octestパッケージとSDKPATH(上記)を含むディレクトリを追加してポイントし:、パスリストでコロン()で区切ります。
  9. iPhoneシミュレーターを家に追加CFFIXED_USER_HOMEします(~/Library/Application Support/iPhone Simulatorここに置く前に拡張しましたが、〜が解釈されるかどうかわからないため)
  10. 作業ディレクトリを、.xcodeprojが存在するディレクトリに設定します
  11. 引数については-SenTest Self、.octestパッケージへのフルパスを使用してください
于 2012-12-05T15:20:10.973 に答える
5

これを行う別の方法は、はるかに簡単で、プロファイル対象をより細かく制御できます。

setUpの開始時にブレークポイントを設定し、実行するテストを実行します。Xcodeがブレークポイントに到達したら、Instrumentsを開き、ターゲットの下でoctestを検索します。次に、そのプロセスに簡単にアタッチできます。Xcodeに切り替えて、ブレークポイントの後で実行を継続すると、計測器は実行したいすべてのテストをプロファイリングする必要があります。

お役に立てれば。

于 2013-07-22T14:05:20.560 に答える