はなちin

今日は有意義だったか?

まだまだ未熟。

Guard

Guard用のgemを入れる。

Gemfile
1
2
gem 'guard-rspec'
gem 'growl'

次にguard init rspecして、Guardfileを作成。

先頭の行を以下のような感じで書き換えた

Guardfile
1
guard 'rspec', :version => 2, :notification => true, :all_after_pass => false do

:notificationは通知のため、:all_after_passはテスト中にこけたらそれ以降のテストを実行しない。(的な感じだったと思う)

後はguardを実行するだけ。specファイルやcontrollerをいじると自動でテストが走り、Growlの通知がくる。

Jenkins

Ruby on Rails Tutorialをちまちま読み進めている。テストも結構書くようなので、ついでにJenkins試してみようという魂胆。

導入

1
2
3
4
brew install jenkins
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/jenkins/1.464/homebrew.mxcl.jenkins.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

Gitのプラグインを導入したく、Jenkinsの管理からプラグインマネージャを開いた。 しかし、利用可能タブにGit pluginが表示されていなかった。

利用可能タブにいろいろ表示するためには、プラグインマネージャの高度な設定から、アップデートサイトの下の保存ボタンを押す。 Jenkinsの設定画面

するとこのようにGit Pluginが表示される。今回はRailsのカバレッジもはかりたいのでRuby metrics pluginも導入する。 Git pluginが表示される

ダウンロードして再起動後にインストールを選択して、しばらく待つと、プラグインのダウンロードがはじまる。

終わったら再起動する。

再起動する際はhttp://localhost:8080/safeRestartから再起動出来るよう。(参考: Jenkins、Webから再起動する)

システムの設定からRakeのパスを設定する Rakeの設定

RailsにJenkinsを組み込む

Rails開発でJenkinsを使ってみる | TechRacho

上記サイトを参考に進める。

Gemfilesimplecovsimplecov-rcovを追加

Gemfile
1
2
3
4
 group :development, :test do
  gem 'simplecov'
  gem 'simplecov-rcov'
 end

spec/spec_helper.rbの先頭に以下を追記

spec/spec_helper.rb
1
2
3
4
require 'simplecov'
require 'simplecov-rcov'
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
SimpleCov.start 'rails'

新規ジョブの作成から、フリースタイル・プロジェクトのビルドを選び、プロジェクトを作成。

プロジェクトのGit項目はこんな感じ。ローカルのgitリポジトリを指定してる。 Git repository

シェルの実行でbundle installしてから、Rakeを実行するようにしている。 プロジェクトの設定から、Rakeの設定をする。高度な設定ボタンを押して、Rakefileの場所の指定などを表示する。 db:migrateしてからspecを走らせる。 Rakeの設定

あとは、Gitでcommitした時に自動でテスト走らせたい。 プロジェクトの中の.git/hooks/post-commitに設定を追加した。 このときchmod a+x .git/hooks/post-commitを実行して、post-commitに実行権限をつけるのを忘れないようにする。

.git/hooks/post-commit
1
2
echo 'Jenkins build start...'
wget -q -O - "http://localhost:8080/job/Ruby%20on%20Rails%20Tutorial/build?delay=0sec" > /dev/null

これでいいかな? とりあえず使ってみる。

Comments