7

ユーザー インターフェイス プロジェクト (UI) とコア ロジック プロジェクト (Core) を含む XCode ワークスペースがあります。UI プロジェクトで OCUnit 単体テストが必要なので、一般的に行われているように、テスト用の新しいターゲットを追加しました。

Core プロジェクトを参照するメイン UI ターゲットにクラスの import ステートメントを挿入するまでは、問題なくテストを実行できます。

表示されるエラーは、「レキシカルまたはプリプロセッサの問題 'xxx.h' ファイルが見つかりません」です。メイン UI ターゲットを直接ビルドすると、このメッセージは表示されません。

メインの UI ターゲットは、ビルド時に Core を認識しているように見えますが、テスト ターゲットから参照されると、Core について何も認識していないように見えます。

「Link Binaries with Libraries」を使用してコア プロジェクトへの参照を追加する手順を実行しました。リスト内の項目は赤のままです。手掛かり?おそらくですが、リンク リストの赤い参照は、UI ターゲットがコア クラスを構築して使用することを妨げません。また、メイン ターゲットをテスト ターゲットの依存関係にしました。

4

3 に答える 3

10

Apple サンプル コード「単体テスト」を確認してください: https://developer.apple.com/library/ios/#samplecode/UnitTests/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011742

ライブラリ プロジェクトが OCUnit テスト ターゲットのビルド フェーズで依存関係として設定され、ライブラリとしてリンクされていることを確認してください。

Xcode でプロジェクトを開きます。[ファイル] メニューで、[プロジェクトの設定...] (ワークスペースを使用している場合は [ワークスペースの設定...]) に移動します。Advanced... をクリックし、Unique がチェックされていることを確認します。クリーニングして再構築します。

BUILD_PRODUCTS_DIR をチェックして、ライブラリのヘッダーがそこに表示されるかどうかを確認します。そうでない場合は、まずライブラリ ターゲットのビルド フェーズをチェックして、必要なヘッダーが Public セクションにあることを確認します (Project セクションも機能する場合がありますが、Public を試して問題が解決するかどうかを確認してください)。

これは、あなたの状況で人々が遭遇する最も一般的な問題をカバーしています。不確かな場合は、UnitTests サンプルのターゲット設定を自分の設定と比較して確認してください。幸運を!

于 2012-05-31T19:15:18.347 に答える
2

Jon Reid の回答に加えて、次のことも行う必要がありました。テスト ターゲットで、Build Settings に移動します。「常にユーザー パスを検索する」を YES に設定します。

于 2013-01-08T21:38:24.420 に答える
0

テスト ターゲットで、ビルド設定に移動します。静的ライブラリ ヘッダーへのパスをヘッダー検索パスに追加します。

于 2012-06-08T18:23:16.050 に答える