By | 2013年4月19日

Xcode 4.5 command line unit testingとかを見てもらえればわかりますが Run Script を修正し、ios-sim というのを用いればできることは知っていました。
なので jenkins を用いて CI する際には stackoverflow にあるような設定をやっていました。
homebrew による依存もあるため、めんどくさいですよね。

先日「iOSのライブラリにTravis CIを導入する」 を見て、TEST_AFTER_BUILD が動いてる!!!!
と、思ったので試してみました。
ついでに Travis CI で iOS-FakeWeb を動かしてみました。

TEST_AFTER_BUILD が動くようになるまでの差分がこれ

以下、対応するまでの手順をまとめました。

1. + マークをクリックし、新たに FakeWebTests scheme を追加
2. FakeWebTests スキームに変更し、FakeWeb Targets を削除
3. FakeWebTests Target に全てチェックをいれる

これで準備は万端です。あとは xcodebuild で実行。

実行コマンド

$ xcodebuild \
        sdk iphonesimulator \
        workspace FakeWeb.xcworkspace \
        scheme FakeWebTests \
        configuration Debug \
        clean build \
        ONLY_ACTIVE_ARCH=NO \
        TEST_AFTER_BUILD=YES

これでめでたくビルド後にテストが実行されるというわけですね。

本来なら FakeWeb scheme で target を FakeWebTests で指定して実行すればいけそうな気がするんですけど xcodebuild: error: You cannot specify targets with a workspace. といって怒られてしまいます。xcodebuild -list だと見えているんですけどね。

Travis CI にも対応したのでですがそれは次回にでも書こうかと思います。

参考資料

Running Xcode 4 unit tests from the command line
[Building Xcode 4 projects from the command line](http://blog.carbonfive.com/2011/04/06/building-xcode–4-projects-from-the-command-line/
Xcode 4: Run tests from the command line (xcodebuild)?