Я пытаюсь загрузить рельсы в тестовой среде, используя скрипт ruby. Я попытался немного погуглить и нашел эту рекомендацию:
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
потому что я пытаюсь запустить код ruby после загрузки рельсов. Более конкретно, что я пытаюсь сделать: запустить скрипт базы данных .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 (модели, контроллеры и т. Д.), Чтобы я мог запускать тесты для своего кода.
Спасибо за любую помощь.
UPDATE:
У меня загружается среда для моих рельсов. Теперь я пытаюсь запустить мои тестовые файлы в рамках моей задачи 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
Я думал, что потребуется файл spec / models / blog_spec.rb, но, похоже, тесты не запускаются ...
Спасибо за помощь.