starting rails in test environment

Posted by Brian D. on Stack Overflow See other posts from Stack Overflow or by Brian D.
Published on 2010-05-11T22:33:34Z Indexed on 2010/05/12 0:14 UTC
Read the original article Hit count: 217

Filed under:
|

I'm trying to load up rails in the test environment using a ruby script. I've tried googling a bit and found this recommendation:

require "../../config/environment"
ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'test'

This seems to load up my environment alright, but my development database is still being used. Am I doing something wrong?

Here is my database.yml file... however I don't think it is the issue

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

I can't use

ruby script/server -e test

because I'm trying to run ruby code after I load rails. More specifically what I'm trying to do is: run a .sql database script, load up rails and then run automated tests. Everything seems to be working fine, but for whatever reason rails seems to be loading in the development environment instead of the test environment.

Here is a shortened version of the code I am trying to run:

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

I don't need to start a server, I just need to load my rails code base (models, controllers, etc..) so I can run tests against my code.

Thanks for any help.

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about environment