yamashiro0110の日記

yamashiro0110の日記です。おもにIT技術のメモを綴っていきます(^o^)

GHUnitのめも


GHUnitでiOSアプリケーションのテストを書こうと思い、その時のφ(`д´)メモメモ...

f:id:yamashiro0110:20140925000040p:plain


環境


インストール

公式の通りに進めたらできました(^o^)

ただし、gemとCocoapodsが必要

  • gemでGHUnitをインストール
sudo gem install ghunit
  • プロジェクトのディレクトリに移動する
    • .xcodeprojが存在するディレクトリ
cd $PROJECT_DIR
  • Testターゲットをプロジェクトに追加
    • -nにはプロジェクト名を渡す
ghunit install -n test
  • PodfileにGHUnitを追加
platform :ios, '6.0'

target :Tests do
    pod 'GHUnit', '~> 0.5.9'
end
  • GHUnitをプロジェクトに追加
pod install
  • .xcworkspaceを開く
    • すると、ターゲットにTestsが追加されてる!

f:id:yamashiro0110:20140924231647p:plain


実行

  • 実行するターゲットをTestsに切り替える

    • 左上の停止ボタンのとなりにあるやつ
  • 実行する!

    • Product -> Run

f:id:yamashiro0110:20140924231836p:plain

今回はiOSシミュレータで実行してみた

右上のRunをタッチすると、テストが実行される


ここまで、インストールと起動は何事もなく終えることができたんですが、 自分で作成したクラスをテストしようとするとビルドエラーがでる(-_-;)

どうやらターゲット毎にコンパイルするソースを指定しないと行けないらしい。。。

方法1

  • プロジェクトの設定画面 > Testsターゲットを選択 > Build Phasesタブを選択 > Compile Sourceを選択
  • Testsターゲット内でコンパイルしたいソースを追加する

方法2

  • テスト対象のソースを選択 > File Inspector > Target Membership > Testsターゲットにチェックを入れる
    • この方法だと.mファイルしかチェックを入れることができない

.mファイルを参照できるんだったら、ヘッダファイルもimportされるから.hはチェック入れる必要なくね?ってことなんですかね(-_-;) 方法1の場合だと.hコンパイルの対象に含めることができたんですが、違いは何なんだろう。。。

ちなみに、方法1と方法2でターゲットのコンパイル対象に含める操作は、 同期されてるようでどちらかの方法で追加した場合はCompile SourceTarget Membershipに追加され、 どちらかの方法で削除した場合は、コンパイル対象から外されてた

別ターゲットの全ファイルをコンパイル対象にする、 ターゲットの設定が有りそうなものだけどわからない。。。