Jenkinsでexpressoを使う
TDD、宇宙の半分ぐらいヤバいと周りに触れ回ってはいるものの、発信源の自分は
- 作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2003/09
- メディア: 単行本
- 購入: 45人 クリック: 1,058回
- この商品を含むブログ (162件) を見る
こいつ、./test以下にテストを書いたファイルを置いて、app.jsがあるところでexpressoとコマンドをうてばテストを実行してくれるんですが、噂で聞く便利なCIツール、Jenkinsでexpressoが使えないかなとか思っていたのです。
ぐだぐだ書きましたが、要は
Jenkinsでexpressoを定期/トリガ実行する
です。
以下の設定をやればJenkinsは次のことをやってくれます。
と、これだけです。そんでもって成功したか否かはおなじみ信号機マークでJenkinsのトップページに載ります。
今は手動実行するか、もしくはJenkinsが定期的にリポジトリを取得して変更が有ればexpressoを実行してくれますが、決まったフォーマットのURLにcURLかwgetなんかでアクセスすると、実行してくれるみたいです。これをgitの.git/hooks/post-commitに書いておけば、コミット時にテスト実行なんてことをやってくれますね。
参考: http://unicus.jp/skmk/archives/41
ではでは、手順。Jenkins(日本語化済み/gitプラグインインストール済み)が既にインストールされた状態で行います。
また、環境はMacでnode.jsをbrewで入れて使っているのでnvmなどを使っている方は、後述のPATHの設定を変更してください。
- http://localhost:8080/ (ポート等は環境に合わせて)に行って新規ジョブ作成
- 「フリースタイル・プロジェクトのビルド」でOK
- ソースコード管理システムにgitを選択
- 「URL of Repository」にgit initしたローカルリポジトリのディレクトリへのパスを入力。file://とかはいらない
- ビルドトリガは「SCMを定期的にポーリング」で。ここは好みに合わせて。前述のコミット後にgitからhookするなら選択しなくて良い。
- ビルド手順の追加では「シェルスクリプトの実行」を選択。内容は以下な感じ。
PATH=$PATH:/usr/local/bin:/usr/local/share/npm/bin:/usr/local/sbin NODE_PATH=/usr/local/lib/node_modules ##意味ないかも expresso -b
expressoの-bオプションはエスケープキャラクタ無しでの表示です。
こんな感じで保存すれば動くと思います。とりあえずこれでテストの自動実行とログは取れるようになりました。
ただ、Jenkinsでのテスト結果の解析や、expressoのカバレッジの結果を使うことが出来ないので、そのあたりはプラグイン書いたり組み合わせたりしないといけないのかなあって思いました。そこまではやらないけれど。
以上、こんな感じです。