6

既存の Cocoa プロジェクトに OCMock を追加しようとしていますが、他の誰もカバーしていない奇妙な問題に直面しています。

私は最終的にそれを次のように分離しました: OCMock.framework 参照をプロジェクトに追加するだけで (つまり、リンク バイナリとライブラリのビルド フェーズにドラッグすると)、テストを実行すると、実際のアプリが代わりに起動されます。

OCMock がない場合、出力は正常です。

Test Suite 'Multiple Selected Tests' started at 2013-02-07 20:07:03 +0000

OCMock フレームワーク リンク (部分的な出力) を使用:

Error loading MyProjTests.octest/Contents/MacOS/MyProjTests
Library not loaded: @rpath/OCMock.framework/Versions/A/OCMock
Reason: image not found
IDEBundleInjection.c: Error loading bundle '/Users/alex/Library/Developer/Xcode/DerivedData/MyProj-bqwyxyspdiudktfnjcdgibdmpgsa/Build/Products/Debug/MyProjTests.octest'

この時点以降、他のアプリの出力は通常どおりに表示されます。アプリの実行中、プロジェクト ナビゲーターの最後のタブでテストの進行状況が回転し、アプリを終了するまで停止しません。したがって、アプリが実行されている間ずっとテストが進行中であると思われます。

テスト ホストまたはバンドル ローダーをクリアしても解決せず、間違ったアーキテクチャのリンク エラーが発生するだけでした。

最新の Xcode 4.6 を使用しています。どんな助けでも大歓迎です。

4

1 に答える 1

16

OK、SOでSubmit hereを押す前に、ついにそれを理解したので、答えを共有することにしました。問題は、OCMock.framework が実行時に利用できないことでした。

公式の OCMock の手順では、ダウンロードしてターゲットに追加するだけで、コピー フェーズを追加するようには指示されていません。フレームワークを製品ディレクトリにコピーするためにテスト ターゲットに新しいフェーズを追加したところ、テストが正常に実行されるようになりました。

メインアプリが起動するのは非常に予想外でした.これが他の誰かに役立つことを願っています.

編集:

写真を追加しました。みんな絵が大好き

ステップ1 ビルド フェーズ -> 新しいコピー ファイル フェーズ

ステップ2 製品ディレクトリ

ステップ 3 ここに画像の説明を入力

ステップ 4 成功!

于 2013-02-07T20:31:16.623 に答える