2012/08/10

Travis CIでPerl(Mojolicious)アプリケーションを自動テスト


Perl+Mojoliciousで作成しているWebアプリケーションがあるのですが、
折角、GitHub上でオープンソースとしてリポジトリを公開しているのだから
Travis CI自動テスト(継続的インテグレーション)をしてもらわない手はないっ!
...ということでテストしてもらうことにしました。

この記事はMojolicious(Test::Mojo)でテストスクリプトを作成していること前提です。

まずは、http://travis-ci.org/ からGitHubアカウントの認証を行います。

認証できたら、Travis CIのプロフィールページへアクセスして
[Token]の文字列を確認しておきます。


次に、GitHubへアクセスして・・・
テスト対象とするリポジトリの[Admin]ページから、[ServiceHook]ページを表示。


AVAILABLE SERVICE HOOKSのリストから、[Travis]を選択します。

すると入力フォームが表示されるので、Token欄にさきほどのTokenを入力して
[Active]にチェックを入れたら、[Update Settings]ボタンをクリック。
さらに、[TestHook]ボタンをクリックします。





次に、Travis CIのプロフィールページへ再度アクセスし
[Repos]タブをクリックすると、自分のリポジトリ一覧が表示されるので、
テスト対象とするリポジトリ名の横にあるスイッチを[ON]にしておきます。



次に、Gitリポジトリのルートへ、".travis.yml"というファイルを作成します。
こんな感じでテストのための環境を定義しておきます。
$ vi .travis.yml 
language: perl
perl:
  - "5.16"
  - "5.14"
install:
    - cpanm --installdeps --notest .
script: "perl Makefile.PL && make test"
(2013/08/18 更新、2014/04/22 更新: mirrorの指定が不要になっていました。)

  • perl項目: テストしたいperlのバージョン
  • install項目: テスト & インストールのためのコマンド
    ここでは必要なモジュールをcpanmでインストールするよう指定しています。
    (さらに詳しいログが必要ならば、 cpanm -v 〜 のようにオプションを付ける。)

詳しくは、http://about.travis-ci.org/docs/user/languages/perl/ 参照のこと。

さらに、MojoのコマンドでMakefile.PLを作ります。
$ mojo generate makefile
Makefile.PLが作成されているので
これをテキストエディタで開き、必要に応じて修正を行います。

具体的には、テストの前にインストールが必要ないわゆる依存モジュールを
PREREQ_PMに定義しておきます。
$ vi Makefile.PL 
use strict;
use warnings;
use ExtUtils::MakeMaker;

WriteMakefile(
  VERSION   => '0.01',
  test      => {TESTS => 't/*.t'},
  PREREQ_PM => {
  'Mojolicious' => '3.20',
   'Validator::Custom' => 0,
   'Config::Pit'   => 0,
   'DateTime'    => 0,
   'JSON'     => 0,
   'String::Trigram'  => 0,
   'Data::Model'   => 0
  }
);

今回のアプリケーションの場合、このようになりました。

最後に、GitHubへプッシュ。
$ git push
これでしばらくすると...

Travis CIのトップ画面の一覧に自分のプロジェクトが表示されますww (おぉ〜!)


また、自分のプロジェクトのテスト結果ページができています。
http://travis-ci.org/#!/mugifly/Fsq2mixi



ここで緑色で表示されていれば、無事テストをパスしたことになります。
赤なら...詳細を見てエラーの原因を調べましょう...ということのようです。

後はプッシュするたびに自動テストを行なってもらえるようです。

さてさて...テストの中身をもっときちんと書かねば(^^;)ゞ
(実は今回お題にあげたプロジェクトはテストを思いっきりサボ(げふんげふん)




参考にさせていただいたページ (感謝♪):

0 件のコメント:

コメントを投稿

お気軽にコメントをお寄せください m(_ _)m♪
"コメントの記入者"欄から[名前/URL]を選ぶと、登録なしでコメント投稿していただけます。