XCodeのテストでビルド範囲を調整
XCode6でコードも書き慣れてきたので、通常開発モードとしてユニットテストも書き始めました。プロジェクト作るとアプリケーションとしてのターゲット設定と別にテストターゲットも自動にセッティングされます。またテストコードも新規作成ウィザードに「Test Case Class」があってSwiftも選べますので、ここまでは親切設計になっています。
テストクラスはJUnit風にsetUp〜tearDownをoverrideしますし、testXXXを実装するとテストとして自動認識されてコンソール登録されます。テストランナーはIDEにガッチリ組み込まれていて、アサーションツールとしてはごく標準的な機能が用意されたXCTest.Frameworkがあります。だいたい他言語でテスト開発したことあれば難しいことはないでしょう。ほかやっておくのはテスト対象のスコープの解決、下記参照。
今回はプラスでアプリケーションターゲット各ファイルのほとんど全部をテストターゲットに含めました。テストに用いるエントリポイントさえ含んでおけばあとは勝手に芋づる式にIDEが解決などということは「ない」ので、plist以外ほとんど全部です。
この画像にあるダブルチェックをやらないと、ビルド時にはまるでクラッシュしたかのような画面いっぱいのワーニングがでます。どうもこのあたりのテスト関連は今ひとつだなあ。将来絶対に仕様が改善されると思う。