UnitTest XCode2.5
先日のエントリで書いた、CocoaのUnitTestについてはLoepard(XCode3)環境でのことだったのですが、同じプロジェクトでTiger(XCode2.5)環境ではうまくいきませんでした。テストターゲットのビルド設定をそれなりにしないと正しく動作しません。
例えばテスト対象としたクラスではキーチェーン操作のためのコードが入っていたりlibcryptoのblowfish系の関数を使ったりしているためSecurity.Frameworkやlibcryptoにリンクする必要があるのですが、これらはテストターゲットでもリンクの必要があります。また、肝心のテスト対象クラスファイルもテストターゲットに追加しないとリンクできませんでした。仕方がないのでリンクのほうはOTHER_LDFLAGSに、テスト対象クラスはテストターゲットの「ソースファイルをコンパイル」にドラッグしました。
XCode3.1で試したときにはこれらの設定は、テストホストに指定したアプリケーション本体から引き継いでくれたところが大きなアドバンテージだと感じたのでちょっとがっかり。これじゃ、アプリケーションのビルド設定を変えるたびテストターゲットのビルド設定も同様に修正する必要が出てきちゃいますねぇ。乾いてないよ!
これらが仕様なのかXCode2.5のバグなのかわかりませんがちょっといただけない気がします。
ところで、色々調べているうち気がついたのですが、IDEの「グループとファイルタ」でコンテクストメニューから「ターゲットのメンバー」をチェックすると各ソースコードやフレームワーク左にチェックボックスがついて選択中のターゲットにソースを追加するのが簡単になりますね。知りませんでした。今回の例で言えばわざわざOTHER_LDFLAGSを指定しなくともSecurity.FrameworkにチェックするだけでOKでした。ファイルの追加もこれまではDnDしていたのですがチェックするだけでいいです。この仕掛けはXCode3でもありましたよ。







Comments