RubyのテストをGiHub・TravisCIを使ってやってみる

  • Pocket
  • このエントリーをはてなブックマークに追加
  • 162 follow us in feedly

まえがき

今回はTravisCIというGitHubで使える無料のCIツールを使ってRubyのユニットテスト(RSpec)を実行してみようと思います。

TravisCIは公開リポジトリなら無料で使えるのでどんどん使っていきましょう。またプルリクエストに対してのテストを実行したりすることもできるそうです。

今回やってみること

今回やることを手順通りに書いてみる。

テスト対象となるリポジトリはすでに作成済みとして進めます

  • 1.Travis CIの登録
  • 2.リポジトリをTravisCIの対象に
  • 3.Travis CIの設定ファイルを作成
  • 4.GitHubにプッシュしてテストが実行される
  • 5.Hipchat API を使ってテストの結果を通知する

TravisCIの登録&リポジトリの設定

まずは、TravisCIにログインし、対象となるリポジトリを『ON』にする。

TravisCIにはGithubアカウントでそのままログインできる。

https://travis-ci.org

https://travis-ci.org

github-travisci-ruby-rspec-1

ログインをGithubに作成されている自分のリポジトリの一覧が表示されるのでスイッチを『ON』に変更します

これだけで設定は完了です。

Githubのリポジトリの設定のサービスに『Travis CI』が登録されたことが確認できます。

github-travisci-ruby-rspec-2

Travis CIの設定ファイルを作成する

TravisCIでテストを実行するためにリポジトリのディレクトリのトップに『.travis.yml』という名前で設定ファイルを作成する必要があります。

このファイルにテストを実行する言語やバージョン、テストを実行するコマンド、その他通知の方法などを書くことになります。

今回は以下のように作成しました。

language: ruby
rvm:
- 1.9.3
- 2.0.0
- 2.1.0
script: bundle exec rspec spec

  • 言語はRuby
  • 実行するRubyのバージョンは1.9.3 2.0.0 2.1.0
  • テストを実行するコマンドは『bundle exec rspec spec』

という内容

これをコミットした後、Githubのリモートリポジトリにプッシュします。

すると数分?数秒?後にテストが実行されます。場合によってはなかなか待たされることもありますが、無料で使っているのだから我慢。迅速に行いたいならJenkinsとか自分で用意しましょう。

テストが終了後、メールで通知が飛んできます。TravisCIのページからは来ないな感じで確認することができます。テストの実行中もリアルタイムで更新されるので見ているのも面白いです。

github-travisci-ruby-rspec-3

HipchatのAPIで通知をする

続いて、ビルドの結果をHipchatで受けれるようにやってみたいと思います。

※Hipchatの登録・APIキーの取得にかんしては省略します。

Hipchatで通知をするにはAPIキーと通知先のroom名を『.travis.yml』に追加してあげます。

notifications:
  hipchat: xxxxxxxxxxapikeyxxxxxxxxxxx@travisci

みたいな形で追加してあげます。これでプッシュするとHipchatに通知され、メールにも通知がきます。他にも通知方法はいろいろあるようなので調べてみるといいでしょう。

Hipchat API key の暗号化

上記のような方法でHipchatの通知を行う場合。APIキーが記述された.travis.ymlファイルがGithub上に上がってしまいなんだかいい気がしません。

しかし、APIキーを暗号化した形で記述しても通知ができるようです。

『travis』というgemのツールを使い、暗号化も簡単にできるので紹介。

gem install travis

travis login
travis travis encrypt xxxxxxxapikeyxxxxxxxx@roomname --add notifications.hipchat.rooms

上記のコマンド『travis encript』で暗号化されたHipchatの設定が『.travis.yml』に追記されます。最初に書いた暗号化されていない設定の方は削除して構いません。

他にも『travis open』コマンドでリポジトリのTravisCIのページをブラウザで開けたりと、いろいろ便利な使い方もできるようです。

以上で今回やりたかったことのメモはひとまず終了。

『.travis.yml』の記述ミスをチェックする

最後におまけ程度に『.travis.yml』のバリデーションができるツール『travis-lint』について書いておきます。

『travis-lint』もgemを使ってインストールすることができます。

gem install travis-lint

あとは、.travis-lintファイルを指定するか、.travis.ymlの存在するディレクトリで『travis-lint』コマンドを実効ればいいだけ。

travis-lint
or
travis-lint ./.travis.yml

試しにRuby 1.0.0のように間違った入力をすると以下のように怒られました。

.travis.yml has issues:
  Found an issue with the `rvm:` key:
    Detected unsupported Ruby versions. For an up-to-date list of supported Rubies, see Travis CI documentation at http://bit.ly/travis-ci-environment

おすすめ書籍

Github
Github
posted with amazlet at 14.03.25
Chris Dawson Timothy M. O’Brien
Oreilly & Associates Inc
売り上げランキング: 116,759

関連記事

keitarou_keitarou__Users_keitarou_Dropbox_ruby_garb_test_—_zsh_—_178×70.pngkeitarou_keitarou__Users_keitarou_Dropbox_ruby_garb_test_—_zsh_—_178×70.png

RubyでGoogleAnalyticsのデータを取得してみる

まえがき 今回もRubyに関するメモ。『garb』とゆうパッケージを...

記事を読む

Followkeijiban.png

railsでページングを行うライブラリ『kaminari』がイケてる

まえがき railsでページングを簡単に実装できるライブラリ『kam...

記事を読む

composer-satis-jenkins-github-1composer-satis-jenkins-github-1.png

composer/satic・Github・Jenkinsを使っておれおれpackagistを作る

まえがき さて、ついにゴールデンウィークがやってまいりました。私のGW...

記事を読む

hipchat-ruby-api-1hipchat-ruby-api-1.png

チャットサービス『HipChat』のRubyAPIで通知して遊んでみる

まえがき プライベートのチャットサービスである『HipChat』のAP...

記事を読む

vim-rspec-1vim-rspec-1.png

VimでRSpecのテストを実行できるようにする

まえがき 今回はVimから直接RSpecのテストを実行する方法をメモし...

記事を読む

新着記事

no image

PHPでRubyのirbっぽいインタラクティブなスクリプトが実行できる「boris」

まえがき PHPでもRubyのirbみたいなことがしたくて探してみたと...

記事を読む

2015年の抱負と去年の振り返り〜よちよちWEB業界1年経験して〜

まえがき あけましておめでとうございます。今年もどうぞよろしくお願いし...

記事を読む

Java SE 7 Bronze試験(1Z0-802)を受けてきました

まえがき 以前から少し受けてみたかった試験『Java SE 7 Bro...

記事を読む

HubotでJenkinsのジョブを実行する

まえがき HubotをつかってJenkinsのジョブをじっこうしてみた...

記事を読む

no image

Hubotをforeverでデーモン化する

まえがき 今回はHubotをforeverを使ってデーモン化してみた時...

記事を読む

スポンサーリンク

  • Sorry. No data so far.

PAGE TOP ↑