Perl Hackers Hub

第23回 Perlアプリケーションのテストと高速なCI環境構築術(2)

この記事を読むのに必要な時間:およそ 1 分

前回の(1)こちらから。

PerlアプリケーションのCI

前回の(1)までで,Perlアプリケーションのテストとその実行に関して基本的な内容を紹介しました。アプリケーション開発にあたっては多くのテストが書かれると思いますが,都度すべてのテストを実行するのは手間がかかりますし忘れてしまうこともあるでしょう。同じことを繰り返すのであればCI環境を作り,テストを自動的/継続的に実行するのが確実です。

Ukigumo::Serverによるテスト実行結果の可視化

Ukigumoはtokuhiromさんが作ったCIを支援するWebアプリケーションです。Ukigumo::Serverはテスト実行結果をPOSTすることで,一覧化してWebブラウザから見ることができるアプリケーションです。

Ukigumo::Serverの導入はcpanmで簡単に行えます。導入と起動は次のように行います。

$ cpanm Ukigumo::Server
$ ukigumo-server
ukigumo-server starts listen on 0:2828

Ukigumo::Serverのインタフェースはとてもシンプルで,テストの実行結果を次のような形でPOSTするだけで,テスト結果をWebページにまとめてくれます図1)⁠

my $ua = LWP::UserAgent->new();
my $res = $ua->post(
    "http://localhost/api/v1/report/add",
    [
        status => 1, # SUCCESS:1, FAIL:2, N/A:3
        project => 'MyProj',
        branch => 'master',
        revision => 3,
        repo => 'git://...',
        body => 'OKXXX',
    ]
);

図1 Ukigumo::Server

図1 Ukigumo::Server

この形式にのっとってPOSTできれば,どのようなクライアントや言語のプロジェクトでもCIを回すことができます。

Ukigumo::Clientによるテスト実行と結果通知

Ukigumo::Clientは専用のコマンドラインツールを備えており,

  • Gitリポジトリの更新
  • proveコマンドの実行
  • 結果の通知

などを実行し,Ukigumo::ServerのAPIを利用する際の定形処理をフォローしてくれます。

Ukigumo::Clientの導入はcpanmで簡単に行えます。

$ cpanm Ukigumo::Client

ukigumo-client.plというコマンドがインストールされるので,次のようにコマンドを実行することで,チェックアウトからUkigumo::ServerへのPOSTまで実行してくれます。

$ ukigumo-client.pl --repo={git_repository} --server_url={ukigumo-server-url} --command="prove -I t/*"

このコマンドをGitのhookとして登録しておくことで,pushされた時点で自動的に実行できます。

これと併せてIkachanを導入するとIRC(InternetRelay Chat)通知まで含めて行ってくれるので,IRCを利用している環境の人はより便利に使えるでしょう。

<続きの(3)こちらです。>

著者プロフィール

久森達郎(ひさもりたつろう)

株式会社フリークアウトの下回り系エンジニア。最近うっかり蒙古タンメン中本にハマってしまい,血が唐辛子色になりつつある。昨今のCasualムーブメントの一翼を担うMySQL Casualを運営。

YAPC::Asia 2012ではBest Talk Award 3位,YAPC::Asia 2013ではBest Talk Award 2位を受賞。

Twitter:@myfinder
blog:http://myfinder.hatenablog.com/

コメント

コメントの記入