11

端末コマンドを使用して、シミュレーターで実行されるアプリケーション テストを開始することはできますか?

ありがとう

4

4 に答える 4

14

はい、動作しました。私の解決策はどういうわけかラフであり、すべての場合に適しているとは限りません。

免責事項:このソリューションでは、システムファイルを編集する必要があります。それは私にとってはうまくいきますが、特にあなたが何をしているのか理解していない場合、XCodeのユニットテストスタックを台無しにする可能性があります。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Tools/RunPlatformUnitTests 代わりに

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

テストを実行するときに、シミュレーターが実行されていない必要があります。

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

于 2011-07-12T07:45:02.330 に答える
2

これにより、シミュレーターが実行されていないことを確認できます。

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

これにより、シミュレータがアクティブかどうかを判断できます。

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

于 2012-07-27T17:56:22.117 に答える
1

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

于 2012-09-25T15:02:37.793 に答える
1

完璧に機能しました、ありがとう!Jenkins CI サーバーで自動テストが復活しました! 修正する必要がありましたTEST_HOST=${BUNDLE_LOADER}。テストの実行時に「そのようなファイルはありません」というエラーが発生した場合は、これを行ってください。

于 2011-12-07T19:56:26.747 に答える