練習がてら次世代FizzBuzzこと「世界のナベアツ」を実装しようと思って、ついでにtravis-ciを利用してみた。
リポジトリは https://github.com/a2ikm/nabeatsu にある。
Ruby力がまだまだ低い…。
rake specを用意する
travis-ciを利用するにはrake
のデフォルトがRSpecの実行になっている必要がある(なので正確にはrake spec
が必要というわけじゃない)。
で、どうやればいいのかというと、RSpecに用意されているrakeタスクをrequireすればOK。
source "https://rubygems.org"
gem 'rake', :require => false
gem 'rspec', :require => false
task :default => [:spec]
begin
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec) do |spec|
spec.pattern = 'spec/**/*_spec.rb'
spec.rspec_opts = ['-cfs']
end
rescue LoadError => e
end
こうするとrake
でもrake spec
でもRSpecが実行される。
ちなみにファイル構成は次のようにしている。
spec_helper.rbはRakefileには顔を出さないけど、毎回評価される。
+- README.md
+- Gemfile
+- Rakefile
+- lib/
| +- nabeatsu.rb
+- spec/
+- spec_helper.rb
+- lib/
+- nabeatsu_spec.rb
travis-ciを有効にする
travis-ciについては http://mochizblog.heroku.com/21 が詳しいのでそちらを参照。
ざっくりと書くと次のような感じ。
- githubにpush
- travis-ciにサインアップして、テストしたいリポジトリを選
- 実行を待つ(pushされるたびに実行される)
リアルタイムで処理が走ってるのが見てて面白い。
あとはREADME.mdにテスト結果を表示できるので、 http://about.travis-ci.org/docs/user/status-images/ を参考に、以下をREADME.mdに記載した。
[![Build Status](https://secure.travis-ci.org/a2ikm/nabeatsu.png)](http://travis-ci.org/a2ikm/nabeatsu)
これはMarkdown用の記法なので、ほかの記法については上記ページを参照。