2011年03月30日

Jenkins-CIとEUnitで自動テストを構築

というわけで、ErlangベースのMMOエンジンを構築中です。
ブログのエントリがまるっと止まってしまっていてお恥ずかしい限りですが。。。。

ちまちまとコードを書いているところですが、CI(継続的インテグレーション)ツールのJenkins(旧Hudson)と、Erlangのユニットテストツール「EUnit」を使って、進捗と現状の把握がしやすい環境を整えようとしているところです。

↓のエントリを参考にさせていただきました。
http://shin1o.blogspot.com/2008/02/hudson.html


全体的には、テストコードを用意して、CIのビルドコマンドにテスト実施を指示し、テストはsurefire形式のログを吐き出すよう記述する、という組み合わせになります。

開発本家ブログには、Integrating Eunit test into Hudson(Jenkins) CI process.として記録していたのですが、書き慣れない英語よりも日本語でふつーにメモしておかないとあとで自分が困りそうです。。。


■手順はこんな感じ。

1.テストコードを書きます。さらに、EUnitのテストコードをまとめて呼び出すエントリポイントを作ります。

run_tests_with_log() -> eunit:test([test], [{report,{eunit_surefire,[{dir,"."}]}}]).

2. Makefileに、上記テストを呼び出すコードを書きます。

test: $(objs)
erl -pa . -noshell -boot start_clean -s test run_tests_with_log -s init stop

(このエントリは、testターゲットが test:run_tests_with_log/0 を起動します)

3. Jenkins(Hudson)に、以下のプラグインをインストールします。
Cobertura Plugin
FindBugs Plug-in

4. Jenkins(Hudson)のJobに“make test”を追記。さらに、“Publish JUnit test result report” をオンに、XML Pathを"src/*.xml"などに設定し、レポートXMLを参照するよう指定します。


5. 以上の設定で、自動ビルドのときにテストまで行われるようになります。
posted by へろ at 01:55| Comment(0) | TrackBack(0) | Erlang