私はiOSに移植している既存のアプリケーションを持っています。私は現在、すべてのビルドで単体テストを実行しています。テストを簡単にするために、私のテストは私のアプリケーションに統合されています。したがって、-t
に合格すると、テストが実行されます。私は私のmain
で行う非常に最初の事はこれです:ユニットXcode内のiOSをテストする
for(int ii=1;ii<argc;++ii)
{
if(strcmp("-t", argv[ii]) == 0)
return RunAllTests(argc, argv);
}
これは、デスクトップ上で素晴らしい作品と、それはあまりにものiOSで動作するため、私は大好きです。 -t
フラグが渡されたシミュレータでアプリケーションを手動で実行すると、テストは正常に実行されます。残念ながら、ビルド後のステップとして実行すると機能しません。私はすべてのビルドでこのスクリプトを実行します:$TARGET_BUILD_DIR/$TARGET_NAME.app/$TARGET_NAME -t
。それが実行されると、私は次のエラーを取得する:IDEはシミュレータよりもむしろ直接実行可能ファイルを実行しようとしているので、
dyld: Library not loaded: /System/Library/Frameworks/UIKit.framework/UIKit
Referenced from: /development/test/projects/../bin/test.app/test
Reason: image not found
/development/test/projects/../obj/test.build/Script-27DEB636151ECEC80003FE53.sh: line 2: 8720 Trace/BPT trap: 5 $TARGET_BUILD_DIR/$TARGET_NAME.app/$TARGET_NAME -t
Command /bin/sh failed with exit code 133
私はthatsのを想定しています。
iOSにはユニットテストフレームワークがありますが、すでにワークフローがあり、iOSの単体テストにすべてのテストを書き直す必要はありません。私のテストが正しく動作するように、Xcodeにビルド後のステップをシミュレータで強制的に実行させる方法はありますか?