我試圖在測試環境中使用ruby腳本加載rails。我試着google搜索了一下,發現這個建議:在測試環境中啓動rails
require "../../config/environment"
ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'test'
這似乎是正常的加載了我的環境,但仍在使用我開發數據庫。難道我做錯了什麼?
這是我的database.yml文件......但是我不認爲這是問題
development:
adapter: mysql
encoding: utf8
reconnect: false
database: BrianSite_development
pool: 5
username: root
password: dev
host: localhost
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: mysql
encoding: utf8
reconnect: false
database: BrianSite_test
pool: 5
username: root
password: dev
host: localhost
production:
adapter: mysql
encoding: utf8
reconnect: false
database: BrianSite_production
pool: 5
username: root
password: dev
host: localhost
我不能使用
ruby script/server -e test
,因爲我試圖運行我加載導軌後的紅寶石代碼。更具體地說,我想要做的是:運行一個.sql數據庫腳本,加載軌道,然後運行自動化測試。一切似乎都工作正常,但無論出於什麼原因,rails似乎在開發環境而不是測試環境中加載。
下面是代碼,我試圖運行的縮短版:
system "execute mysql script here"
require "../../config/environment"
ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'test'
describe Blog do
it "should be initialized successfully" do
blog = Blog.new
end
end
我不需要啓動服務器,我只需要載入我的Rails代碼庫(模型,控制器等..),所以我可以對我的代碼運行測試。
感謝您的任何幫助。
更新:
我現在正在加載我的導軌環境。現在我試圖在我的rake任務中運行我的測試文件。這裏是我的代碼:
require"spec"
require "spec/rake/spectask"
RAILS_ENV = 'test'
namespace :run_all_tests do
desc "Run all of your tests"
puts "Reseting test database..."
system "mysql --user=root --password=dev < C:\\Brian\\Work\\Personal\\BrianSite\\database\\BrianSite_test_CreateScript.sql"
puts "Filling database tables with test data..."
system "mysql --user=root --password=dev < C:\\Brian\\Work\\Personal\\BrianSite\\database\\Fill_Test_Tables.sql"
puts "Starting rails test environment..."
task :run => :environment do
puts "RAILS_ENV is #{RAILS_ENV}"
require "spec/models/blog_spec.rb"
end
end
我認爲需要「規格/型號/ blog_spec.rb」文件將做到這一點,但它似乎並沒有運行測試...
感謝幫助到目前爲止。
顯示你的配置/數據庫。yml文件 – fl00r 2010-05-11 23:21:33
好吧,我不明白確切的問題。您可以嘗試指定ENV [「RAILS_ENV」] =「test」require File.expand_path('../../ config/environment',__FILE __)'明確 – fl00r 2010-05-12 00:29:39