Когда я запускал `bundle exec rake test: prepare`, он выходил из строя, но` bundle exec rake db: test: prepare` прошел через штраф с предупреждением. Что происходит?
Итак, согласно этой ссылке, это оболочка ярлыков (так что я предполагаю, что они одинаковые).
Когда я запустил bundle exec rake db:test:prepare
, я получаю эту ошибку:
Don't know how to build task 'test:prepare'
/Users/aj/.rvm/gems/[email protected]_rails_4_0/bin/ruby_executable_hooks:15:in `eval'
/Users/aj/.rvm/gems/[email protected]_rails_4_0/bin/ruby_executable_hooks:15:in `<main>'
... но когда я побежал bundle exec rake db:test:prepare
, я получаю это предупреждение:
WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test schema automatically, see the release notes for details.
Может ли кто-нибудь пролить свет на это?
Ответы
Ответ 1
В Rails 4.1+ они устарели db: test: подготовьтесь с этим сообщением. Теперь вы можете просто использовать:
ActiveRecord::Migration.maintain_test_schema!
в spec_helper.rb(или подобных файлах, если вы не используете RSpec). Это автоматически синхронизирует вашу тестовую базу с вашей схемой. Из-за этого "автоматического" метода db: test: в большинстве случаев больше не требуется.
Если вам нужно сделать это вручную по какой-либо причине, вы все равно можете использовать
rake db:schema:load RAILS_ENV=test