herokuにRails3.2.1を入れてみる その3

前回Gemfileの設定がテスト用に最適化されていなかったので補完です。
インストールするgemは、コードカバレッジを測定するための:

それからdevelopment及びtest環境で使用するために
sqlite3をGemfileに追記します。


Gemfileを適当に編集:

group :production do # group指定無しだった pg を production 環境限定に
  gem 'pg'
end

group :development, :test do # これはRSpecやZenTestのところに追記
  gem 'simplecov'
  gem 'sqlite3'
end

> bundle install

さらにSimpleCov用に spec/spec_helper.rb を編集

# 行頭
require 'simplecov'
SimpleCov.start 'rails'
...

> rake db:migrate
> git add .
> git commit -m "installed simplecov and sqlite3 for development and test"
> git push heroku

SimpleCovですが、Railsが読み込まれるにロードしなければならないので、
テストの直前、つまり spec/spec_helper.rb の行頭で require しなきゃなりません。
SimpleCovはrcov形式でのカバレッジ出力もできますが、
むしろ僕はSimpleCovのほうが使い慣れているのでオリジナルのまま行きます。

そして、 :development, :test グループならherokuにpushしてもbundleされない(らしい)ので、
無事sqlite3をローカルにbundleし、本番環境ではPostgreSQLを使う準備が整いました。

途中ためらいなく rake db:migrate していますが、
これはherokuにpushした時点でdatabase.ymlが自動的に書き換えられ、
productionではPostgreSQLを使うよう設定されるので大丈夫(だと思う)です。*2

あとはいよいよ、実際のコーディングに入ります。
動くかどうかわかりませんが、念のようなものを送ってなんとか動いてもらいます。
まずはモデルを作って、specファイルから?

参考: ここまでの経過 https://github.com/sandmark/NumberPlaceSolver

*1:従来のrcovRuby1.9に対応していないため

*2:そんなメッセージが出てた。