CIAって本当に便利?
って聞かれて、うまく答えられなかったことがあったんだけど、思い直してみたらやっぱりCIAを使う価値はあると思う。
CIAは定期的にビルドを実行してくれたらいいのにって考えてたら「cronでビルドすればいいんじゃないの?」って言われて、その通りだって思ったけど、そうではなかった。
機能 | cron | cia |
---|---|---|
ログにテストの記録を残す | ○ | × |
ビルド毎にテストの記録を残す | × | ○ |
テストの成否の通知 | × | ○ |
定期的なビルドの実行 | ○ | △ |
これだけ違いがあるので、CIAを導入する価値はあるかも。
で「定期的なビルドの実行」が△なのは、cronで実行するコマンドにsvnのフックスクリプトを書けばOKだから。
script/runner "Agent.build(\"$REPOS\", $REV)"
それからCIAの方の「ログにテストの記録を残す」が×なのは、CIAのビルド方法のせい。
CIAでのビルドは、毎回SVNからプロジェクトをテンポラリのディレクトリにチェックアウトしてビルドを実行するから。そのディレクトリには最後のテストのログが残ってはいるはず。まあ、ブラウザから記録が読めるから別にどうでもいいような気がするけど。
CIA導入のコストと、プロジェクトが佳境でテストがすっ飛ばされる*1状況下でもテストの重要さを思い出させてくれるメリットを比べれば、導入するべきですわ。まあ、テストを好きになるコストも必要なんだけどね。
*1:すばしっこいなどの「す」は現代で言う「超」と同じ強調の意なんだそうです