TDD&CI事始め

小さなプロジェクトで、きちんとTDDとCIをしてみよう
<前提>
・GITサーバーはある
・MacでXcodeも用意済み
・Macのサーバーもあって、Jenkinsセットアップ済み

gitサーバー上のリポジトリディレクトリで、
[objc]
% mkdir TemperatureConverter.git
% cd TemperatureConverter.git
% git init –bare .
[/objc]
これで、gitサーバーは、受け入れ完了

開発Mac上で、Xcodeを使って、TemperatureConverterを作る。
まずは、CocoaPodは、入れないでおく。
この時に、”Include Unit Tests”と”Include UI Tests”にチェックを入れておく。
(UI Testsは使うかどうかわからないけど・・・)

最後に、開発PC上にgitリポジトリを作るにチェックが入っていることを確認して、”Create”をPush!

テストが何もないとよくわからないので、TemperatureCOnverterTests下にあるTemperatureConverterTests.mをちょっとだけ、修正(何もなくてもエラーにする)
[objc]
– (void)testExample {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
XCTAssertTrue(TRUE);
}
[/objc]
schemeを[Product]-[Scheme]-[Manage schemes…]で共有設定にする。
(今使っているOSX Serverは、10.10でUITestは、10.11以降のサポートなので、必要に応じて、UITestはDisableに)
そしたら、commitしてgitに追加。

いつもSourceTreeを使っているので、作ったWorkspaceをSourceTreeへ追加。
いつもGitFlowを使っているので、この段階で、GitFlowをインストール。
次に、サーバーと関連付けて、pushしておく。

次に、Jenkinsサーバーでgitから取得する設定
新しいItemでJobを作成し、上記gitから取得するようにする。取得するTagはDevelopにしておく。(本当は、masterかも??)
一度、Jobを実行してみて、正しく取得できているか確認して、完了。

次は、XCodeでのビルド設定
JenkinsにXCodeプラグインを入れておくと、簡単(というか、入れましょう)
BuildTriggersは、置いておいて、
Build-Add build stepでXcodeを選択して、Xcodeを使用したbuildを設定。

ビルドの次のステップとして、testを実行するアクションを作成する。

うまく動くはずなんだけど、なぜかエラーとなる。
→ プロジェクトの動作環境を10.11にしているのに、サーバーが10.10だったからでした。

これで、ビルドまで通ることを確認できた。

お試し中のAppCodeを使って、どれくらいコード推測が有効か、見てみよう。