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せずにテストが通りました。