2011-07-06 9 views

答えて

14

はい、私はそれが動作するようになりました。私の解決策はいくぶん荒く、すべての場合に適切ではないかもしれません。 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Tools/RunPlatformUnitTests

Disclaimer: This solution requires to edit system files. It works for me, but may mess up XCode's unit testing stack, especially if you do not understand what you are doing.

if [ "${TEST_HOST}" != "" ]; then 

    Warning ${LINENO} "Skipping tests; the iPhoneSimulator platform does not currently support application-hosted tests (TEST_HOST set)." 

else 

あなたが別の場所に固定され、ユーザのホームを移動させてもよい

if [ "${TEST_HOST}" != "" ]; then 

    mkdir -p "${BUILT_PRODUCTS_DIR}/Documents" 
    mkdir -p "${BUILT_PRODUCTS_DIR}/Library/Caches" 
    mkdir -p "${BUILT_PRODUCTS_DIR}/Library/Preferences" 
    mkdir -p "${BUILT_PRODUCTS_DIR}/tmp" 

    export CFFIXED_USER_HOME="${BUILT_PRODUCTS_DIR}/" 

    RunTestsForApplication "${TEST_HOST}" "${TEST_BUNDLE_PATH}" 
else 

と交換し、私はあなたが.APPを移動する必要があると思うし、 .octestバンドルに沿って。

-RegisterForSystemEventsをテストバンドルのビルド設定OTHER_TEST_FLAGSに追加します。

は、あなたのテストのための新しいスキームを作成し

# Run the unit tests in this test bundle. 
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 

テストバンドルが内容で実行スクリプトのビルドフェーズが含まれていることを確認します。

あなたは標準xcodebuildを使用してコマンドラインからテストを実行することができます:シミュレータは実行しないでください

xcodebuild -workspace $(WORKSPACE_NAME).xcworkspace -scheme $(TEST_SCHEME) -configuration debug -sdk iphonesimulator

、一度あなたが何のテストを実行します。

この情報が完全であることを期待します。何かが期待どおりに機能しない場合は、お尋ねください。

+0

私はそれを試してみます。お知らせします。 –

+0

私はそれを試しました。次の結果が表示されます。 'xcodebuild:error:計画TestSchemeでワークスペースプロジェクトを作成できませんでした。理由:スキーム "TestScheme"が起動用に設定されていません。 'あなたはこの問題に遭遇しましたか? Xcode自体では、 'cmd-r'(実行コマンド)ではなく 'cmd-u'でのみテストを実行できます。 –

+0

すでに手に入りました。間違った 'RunPlatformUnitTests'ファイルを編集しました。 UI要素でテストを実行することができます。私はシミュレータが表示されない、あなたの 'バージョン'でシミュレータが始まっていますか?あるいは、シミュレータを使わずにアプリケーションテストを実行しているだけですか? –

1

完璧に働いた、ありがとう! 私たちのJenkins CIサーバーでは、自動化されたテストが実施されています! ちょうど私のTEST_HOST=${BUNDLE_LOADER}を修正しなければなりませんでした。テストを実行するときに「そのようなファイルがない」というエラーが表示された場合は、これを実行します。シミュレーターはこれでアクティブな場合

osascript -e 'tell app "iPhone Simulator" to quit'

はあなたが決めることができます:

+1

何に変更しますか?私はTEST_HOSTを空のままにしておきます。 –

2

あなたはシミュレータはこれで実行されていないことを確認することができます

sh -c 'ps -xaco command | grep "iPhone Simulator"'

1

これは、とのようですXcode 4.5GM、シミュレータでのアプリケーションテストの実行がサポートされるようになりました。

+0

Xcode内からは、RunPlatformUnitTestsスクリプトが更新されていないため、xcodebuildを使用していません。 –

+0

私の所見に基づいて自分の答えを更新しました。 – ff10

+0

「xcodebuild」を使用しているときに、すぐにアプリケーションテストを実行できないという事実は変わりません。 Xcodeの中からうまく動作します。 SDKは無関係です。 –