[ターゲットの追加]-> [Cocoa Touchユニットテストバンドルの追加]を使用して、Xcode5にテストターゲットを追加してみました。ただし、テストを実行すると、次のエラーが発生します。
2013-09-24 10:43:14.446スタック交換[48895:c07] 読み込みエラー/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests:dlopen(/ Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests、262) :ライブラリがロードされていません: /Developer/Library/Frameworks/XCTest.framework/XCTest参照元:/ Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug- iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange テストの理由:イメージが見つかりませんIDEBundleInjection.c:バンドルの読み込みエラー '/ Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest 'プログラムは終了コード:0で終了しました
なぜこれが機能しないのですか?
IOS7シミュレーターでテストを実行する必要があります。 iOS6.xでは動作しません。
[全般]タブ-> [展開ターゲット]を7.0に設定することでこれを修正しました(単体テストを「実行」するために使用しているアプリの場合)。メインアプリで7.0より前のバージョンをサポートする場合、これは適切ではありません。ただし、単体テストビルドターゲットには展開ターゲットがないため、そこに設定することはできません。代わりに、単体テストのターゲット([全般]タブ)を、展開ターゲットが7.0のアプリに設定する必要があります。これを行うために「TestApp」を設定できるため、メインアプリのデプロイを制限する必要はありません。
CIサーバーがXcode5.1.1とiOS7.1で構成されていても、まったく同じ問題が発生しました。私は多くのパラメータを試しましたが、最終的に正しいパラメータは-destination
でした。
完全なコマンドの例を次に示します。
xcodebuild -workspace MyApp.xcworkspace -sdk iphonesimulator7.1 -destination "platform=iOS Simulator,name=iPhone Retina (4-inch)" -scheme MyAppTests test
xctool
0.1.16でも機能します。
クレジット: http://www.mokten.com/2014/04/xcodebuild-unit-tests-library-not-loaded-no-image-found/
-destination
パラメータを追加しなければならなかった理由を説明できる詳細の1つは、iOS6と7.1の両方のSDKがインストールされていることです。ただし、iOS 6SDKを削除するとどうなるかは確認していません。
HTH