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(2013/08/18 更新、2014/04/22 更新: mirrorの指定が不要になっていました。)
perl:
- "5.16"
- "5.14"
install:
- cpanm --installdeps --notest .
script: "perl Makefile.PL && make test"
- perl項目: テストしたいperlのバージョン
- install項目: テスト & インストールのためのコマンド
ここでは必要なモジュールをcpanmでインストールするよう指定しています。
(さらに詳しいログが必要ならば、 cpanm -v 〜 のようにオプションを付ける。)
詳しくは、http://about.travis-ci.org/docs/user/languages/perl/ 参照のこと。
さらに、MojoのコマンドでMakefile.PLを作ります。
$ mojo generate makefileMakefile.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]を選ぶと、登録なしでコメント投稿していただけます。