2012-03-25 11 views
3

私は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にビルド後のステップをシミュレータで強制的に実行させる方法はありますか?

答えて

0

Xcodeのメニューで、Product-> Edit Scheme ...を選択します。私はあなたがランまたはおそらくテストを使用していると仮定しますが、それは問題ではありません。どんな実行をしても、右側のタブの引数をクリックしてください。 "引き継がれた引数"が表示されます。そこにパラメータを追加してください。それはうまくいくはずです。

関連する問題