2

これは、このチュートリアルが GHUnit テスト ターゲットで提供するものを達成しようとする質問です。テストターゲットにソースファイルを手動で含める必要がないように、テストターゲットをソースターゲットにリンクすることについてです。以下は、提案されたソリューションの抜粋です。

Xcode 4 を使用して既存の iOS プロジェクトに単体テストを追加する

Project MyExistingApp -> + ターゲットを追加 -> iOS -> その他 -> Cocoa Unit Testing Bundle

新しいターゲットに「Unit Tests」や「MyAppTests」などの名前を付けます</p>

新しい「ユニット テスト」ターゲットを選択し、[ビルド フェーズ] タブをクリックして、[ターゲット] を展開します。

依存関係を作成し、MyExistingApp をターゲット依存関係として追加します

Build Settings タブをクリックし、Bundle Loader 設定を

$(BUILT_PRODUCTS_DIR)/MyExistingApp.app/MyExistingApp

テスト ホストのビルド設定を

$(BUNDLE_LOADER)

アプリ ターゲットで、デフォルトで非表示のシンボル ビルド設定を

いいえ

チュートリアルに従って GHUnit テスト ターゲットでコンパイルするようにしましたが、実行時エラーが発生します。

warning: This configuration supports "Darwin64" but is attempting to load
an executable of type i386 which is unlikely to work.
Attempting to continue.
`/usr/lib/dyld' has changed; re-reading symbols.
warning: Inconsistent DBX_SYMBOL_SIZE

/Users/...Tests.app/Tests: /Users...Tests.app/Tests: cannot execute binary file

あなたの助けに感謝!

編集

上記のチュートリアルとGHUnitの使用には問題があることに気付きました。上記のチュートリアルでは、バンドル ローダー ターゲットを起動する OCUnit を使用していることを前提としています。ただし、GhUnit ターゲットは実行可能ファイルでなければなりません。ソースファイルを実行可能ターゲットにリンクする方法を誰かが共有したい場合は、感謝します。今のところ、GHUnit を使用してすべてを手動で行うつもりです。

4

1 に答える 1

0

これが正しい答えかどうかはわかりませんが、私にとってはうまくいきました:

GHUnits テストケースを取得し、SenTestCases でラップしました。XCode は自動的に SenTestsCases を呼び出すので、テストを実行するのに何の問題もありませんでした。

魔法のように働き、もう心配することなく非同期テストを取得しました。

于 2013-06-11T15:03:42.973 に答える