1

ライブラリ ターゲットでライブラリ コードをテストできるようにしたいので、別のプロジェクトに切り替えて実行する必要はありません。

ターゲットを追加する方法はわかりましたが、「コマンド ライン ツール」プロジェクト テンプレートのように実行するように設定する方法がわかりません。新しい「シェル ツール」ターゲットを追加しようとしましたが、そのように実行する方法がわかりません。そのターゲットに追加する必要があるビルド設定は何ですか? 起動するにはどのファイル (main.m?) が必要ですか?

編集(うまくいけば、質問をより回答しやすくするために、以下から私のコメントを追加しました。)

私のライブラリには、iOS 用と MacOS 用の 2 つのターゲットがあります。これまでのところ、iOS プロジェクトにのみ含めているので、現在使用したいプロジェクトです。Cocoa Touch Unit Test Bundle ターゲットを追加しようとしましたが、ビルドが失敗し、コマンド /bin/sh/ が終了コード 1 で失敗し、アーキテクチャ 'i386' (GC OFF) のテストに失敗しました。i386 で実行したいとは思いません (少なくとも私の iOS ターゲットのテストではありません)。ターゲット設定で i386 と書かれているものは見つかりません。

プロジェクトのアクティブなアーキテクチャが i386 ([プロジェクト] > [アクティブなアーキテクチャの設定] メニュー) であることがわかりますが、そこで変更することはできません。私の TestApp ターゲットにはアーキテクチャ セットとして標準 (armv6) があり、設定を検索しようとしましたが、i386 が含まれていません。どうすればそれを変更できますか?

4

4 に答える 4

3

Mac OS X SDK には、単体テスト バンドル ターゲットのテンプレートがあります。

「バンドル」はテスト ターゲットのビルド プロダクトであることに注意してください。ターゲットは単体テスト バンドルを生成します。実際の製品 (ライブラリ、アプリなど) がバンドルである必要はありません。実際、実際の製品が何であるかは問題ではありません。

とはいえ、静的ライブラリがある場合は、少し異なる方法で行うことができます。

  1. グループ ツリー内の任意のものを右クリックします。「追加」サブメニューから、「新しいターゲット」を選択します。
  2. Mac OS X ヘッダーの下で、Cocoa を選択します。テンプレートのリストを下にスクロールし、[単体テスト バンドル] を選択します。[OK] をクリックします。
  3. 単体テスト バンドル ターゲットに名前を付けます。
  4. ライブラリ ビルド製品 (Products グループから) を単体テスト バンドル ターゲットの Link Binary with Libraries フェーズに追加します。
  5. ライブラリ ターゲット (Targets グループから) を、ビルド フェーズ外の単体テスト バンドル ターゲットに追加します。これにより、テスト バンドル ターゲットが必要に応じてライブラリを再構築するように、依存関係が作成されます。
  6. アクティブ ターゲットをテスト バンドル ターゲットに設定します。

通常、テスト対象のコードのソース コード ファイルをライブラリ ターゲットとテスト バンドル ターゲットの両方に追加するだけですが、この方法でテスト バンドルをライブラリにリンクする能力もテストされます。ライブラリへのリンクを妨げる問題がライブラリにある場合、これはそれらを検出する可能性があります。

于 2010-06-11T06:32:30.097 に答える
0

アクティブな実行可能ファイルを変更できますか? (Xcode の Project メニューの下にあります: Set Active Executable)

シェル ツール ターゲットmain(int argc, char* argv[])のビルド ファイルの 1 つに int 関数が含まれていますか?

于 2010-06-10T19:33:02.603 に答える
0

Mac の場合、新しいターゲットを追加できます。コマンドライン ツール テンプレートを選択します。

于 2012-08-27T17:02:27.870 に答える