Я пытаюсь загрузить рельсы в тестовой среде, используя скрипт 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
, потому что я пытаюсь запустить рубиновый код после загрузки рельсов. Более конкретно, что я пытаюсь сделать: запустите сценарий базы данных .sql, загрузите рельсы и затем выполните автоматизированные тесты. Кажется, что все работает нормально, но по какой-либо причине рельсы, похоже, загружаются в среду разработки вместо тестовой среды.
Вот сокращенный вариант кода я пытаюсь запустить:
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
мне не нужно, чтобы запустить сервер, мне просто нужно загрузить мои рельсы код базы (модели, контроллеры и т.д. ..), поэтому я могу запускать тесты против моего кода.
Спасибо за любую помощь.
UPDATE:
У меня есть среда рельсы в настоящее время погрузки. Теперь я пытаюсь запустить свои тестовые файлы в рамках своей задачи. Вот мой код:
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 file – fl00r
Хорошо, я не понял точной проблемы. Вы можете попытаться указать 'ENV [" RAILS_ENV "] =" test "требуют File.expand_path ('../../ config/environment', __FILE __)' ясно – fl00r