RailsでDB(ActiveRecord)を利用しない場合の設定

http://d.hatena.ne.jp/yotaropg/20060905 に貰った id:tilyさんのコメントより。

# tily 『正式に(?)はどうやればいいんでしょうかねぇ。
http://wiki.rails2u.com/ActiveRecord%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%9A%E3%81%ABRails%E3%82%92%E4%BD%BF%E3%81%86
でもActiveRecordロードしてしまうみたいだし。。。』


ほんと、どうやればいいんでしょう・・・気になったので調べました。
http://wiki.rubyonrails.com/rails/pages/HowToUseRailsWithoutADatabase
ちゃんと公式に置いてあるという。反省。
以下、手順。


1. config/environment.rbを修正。

〜
Rails::Initializer.run do |config|
  config.frameworks -= [ :active_record ]
〜


2. test/test_helper.rbを修正。

class Test::Unit::TestCase
  self.use_transactional_fixtures = false
  self.use_instantiated_fixtures  = false
  def load_fixtures
  end
end


3. lib/tasksディレクトリにtesting.rakeファイルを作成し、以下のように記述。

[:'test:units', :'test:functionals', :'test:recent', :'test:uncommitted', :'test:integration'].each do |name|
  Rake::Task[name].prerequisites.clear
end


以上で設定は完了。
ためしにgeneratorで空のcontrollerを作り、rakeをオプションなしで実行してみる。

(in /Users/dsaitoh/src/radrails/Test)
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/rake_test_loader.rb"  
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/rake_test_loader.rb" "test/functional/hello_controller_test.rb" 
Loaded suite /opt/local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/rake_test_loader
Started
.
Finished in 0.000429 seconds.

1 tests, 1 assertions, 0 failures, 0 errors
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/rake_test_loader.rb"  

成功。abortせずにテストが通りました。