У меня есть приложение, которое было обновлено до рельсов 4.1.8. Я взломал попытку сделать рельсы «автоматически управляемыми» моей схемой тестирования ... но, несмотря ни на что ... Я должен вручную подготовить тестовую базу данных. Я использую MiniTest и Fixtures.Неисправна схема автоматического тестирования Rails 4
Вот мой test_helper.rb
ENV["RAILS_ENV"] = "test"
require File.expand_path("../../config/environment", __FILE__)
require "rails/test_help"
require "minitest/rails/capybara"
require 'minitest/rg'
Capybara.default_driver = :selenium
ActiveRecord::Migration.maintain_test_schema!
class ActionDispatch::IntegrationTest
# Make the Capybara DSL available in all integration tests
include Capybara::DSL
end
class ActiveSupport::TestCase
fixtures :all
include Sorcery::TestHelpers::Rails
include Sorcery::TestHelpers::Rails::Controller
extend MiniTest::Spec::DSL
# http://blowmage.com/2013/07/08/minitest-spec-rails4
register_spec_type self do |desc|
desc < ActiveRecord::Base if desc.is_a? Class
end
def sample_file(filename = "test_image.png")
File.new("#{Rails.root}/test/#{filename}")
end
end
Важным направлением является "ActiveRecord :: Migration.maintain_test_schema!" ... который должен автоматически обрабатывать тестовую схему. Однако это не так. Я регулярно занимаюсь производственной базой данных. После чего ... тест db исчезнет ... поэтому его нужно воссоздать.
Если я бегу:
bundle exec rake test
Он потерпит неудачу с:
ActiveRecord::NoDatabaseError [...]
Итак, тест БД не был автоматически управляется рельсам. Потому что ... его нет.
Если я запускаю пакет exec rake db: создать его не удастся, потому что база данных разработки уже существует. Если я запускаю пакет exec rake db: migrate, он будет выполняться, но не повлияет на тестовый db.
Если я бегу:
расслоение EXEC грабли БД: Тест: подготовка
Это будет печатать:
WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test schema automatically, see the release notes for details.
тест: подготовка работ ... Я иду на мой веселый путь тестирования , Но, скоро ... тест: подготовить будет ... пуф ... ушел.
вопросы
Что мне не хватает? Когда вы демпинг и вытягиваете из производства ... как бы рельсы знали, как справиться с испытанием db? Это обычное явление в мире ... как обрабатывается? Что происходит в таких случаях, когда тест: подготовка удаляется в следующем выпуске рельсов?
Благодаря