GHUnitの導入

GHUnitの色んな設定方法を試してみてうまくいきませんでしたが、
最終的に下記の記事を参考にしたらうまくいきました。
GHUnit Setup


作業内容メモ。

インストール作業

新しいプロジェクトを作成します。この例では「CubPath」という名前にします。


「グループとファイル」の「ターゲット」項目を右クリック、
「追加」-> 「新規ターゲット」をクリック。


名前は「<プロジェクト名>Tests」のルールで付けます。この例では「CubPathTests」になります。


https://github.com/gabriel/gh-unit/downloads
ここからGHUnitIOSをダウンロードします。
ダウンロードして解凍したら、「GHUnitIOS.framework」というフォルダがあります。
このフォルダを「グループとファイル」 -> 「Frameworks」にドラッグアンドドロップします。


「追加」ボタンを押す前に、「ターゲットに追加」セクションを確認します。
"デスティネーショングループのフォルダに項目をコピーする"にチェックを入れます。
"CubPath"のチェックは外します。
"CubPathTests"のチェックを入れます。
「追加」ボタンを押します。


プロジェクトのFinderに移動します(「グループとファイル」内で右クリック「Finderで開く」)。
「<プロジェクト名>_Prefix.pch」を複製します。
複製したファイル名は「<プロジェクト名>Tests_Prefix.pch」にします。
この例では「CubPathTests_Prefix.pch」になります。


「グループとファイル」 -> 「Other Sources」で右クリック、
「追加」 -> 「既存のファイル」をクリック。
先ほど作成した「<プロジェクト名>Tests_Prefix.pch」を選択します。
「追加」ボタンを押す前に、「ターゲットに追加」セクションを確認します。
先程の同じ設定にしたら、「追加」ボタンを押します。


「<プロジェクト名>Tests_Prefix.pch」を編集します。
「#import 」という一文を追加します。

設定

「グループとファイル」 -> 「ターゲット」 -> 「<プロジェクト名>Tests」を右クリック。
「情報を見る」を選択します。


「一般」タブの「直接依存関係」にプロジェクトを追加します(CubPath)。


「一般」タブの「リンク済みライブラリ」には次のものを追加します。

  • CoreGraphics.framework
  • Foundation.framework
  • UIKit.framework


「ビルド」タブで、「Other Linder」を検索します。
「他のリンカフラグ」に次のものを追加します。

  • -all_load
  • -ObjC


「ビルド」タブで、「GCC_Prefix」を検索します。
GCC_PRECOMPILE_PREFIX_HEADER」が「YES」になっているか確認します。
GCC_PREFIX_HEADER」が「<プロジェクト名>Tests_Prefix.pch」になっているか確認します。
正しくなっていなければ、正しく設定します。



「グループとファイル」 -> 「<プロジェクト名>Tests-Info.plist」を選択し編集します。
「Main nib file base name」フィールドで"MainWindow"とデフォルトで設定されていますが、このフィールドを空白にします。

動作チェック

http://github.com/gabriel/gh-unit/blob/master/Project-IPhone/GHUnitIOSTestMain.m
ここから「GHUnitIOSTestMain.m」をダウンロードして、プロジェクトに追加します。


「SetupTests.h」と「SetupTests.m」を作成します。
内容は次のようになっています。

@interface SetupTests : GHTestCase {}
@end


@implementation SetupTests

- (void)testFirstUT {
   GHAssertEquals(1, 2, @"Should fail");
}

- (void)testSecondUT {
   GHAssertEquals(1, 1, @"Should pass");
}

@end


「ビルドと実行」を押して実行します。


うまく行けば、シミュレータが立ち上がってテストが出来るようになります。