Logic Unit Testは、Testターゲットを作成するだけで実行できるが、肝心のアプリコードをテストするためのSenTestingKitでのApplication Unit Testはそのままでは動かなかったのでメモ
いろいろUnit testターゲットのCompile Sourcesにアプリのソースファイルを入れてみたり試行錯誤してみましたがうまくいきませんでした。
で、Xcode Unit Testing Guideを見たらに普通に書いてあったので、それによると、
- Unit testターゲットのプロジェクトエディタで、Build Settingsのタブを開く
- Build SettingsをAllに切り替え
- LinkingのBundle Loaderの値を設定:
app_name
は特別なことをしてなければプロジェクト名- $(BUILT_PRODUCTS_DIR)/
app_name
.app/app_name
- $(BUILT_PRODUCTS_DIR)/
- Unit TestingのTest Hostの値を設定
- $(BUNDLE_LOADER)
これで、cmd+Uでいつでもテストが実行出来ます。
ただ、Bundle Loaderにアプリ内部のパスを設定してしてしまっているので、cleanした後にテスト動かすと、bundle loader のファイルがないってエラーがでてしまうので、テストする際は予めアプリをBuildして置かなければならないみたいです。
なので、Edit SchemeでBuildの項目からテストターゲットはBuild for Testing以外のチェックを外して置くといいかもしれません。(少なくとも、Build for Runningのチェックは外さないとアプリのビルドができません)。
##まとめ
- GHUnitに頼り過ぎました