herokuにRails3.2.1を入れてみる その3
前回Gemfileの設定がテスト用に最適化されていなかったので補完です。
インストールするgemは、コードカバレッジを測定するための:
- GitHub - colszowka/simplecov: Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites *1
それから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