Подтвердить что ты не робот

Когда я запускал `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.

Может ли кто-нибудь пролить свет на это?

4b9b3361

Ответ 1

В Rails 4.1+ они устарели db: test: подготовьтесь с этим сообщением. Теперь вы можете просто использовать:

ActiveRecord::Migration.maintain_test_schema!

в spec_helper.rb(или подобных файлах, если вы не используете RSpec). Это автоматически синхронизирует вашу тестовую базу с вашей схемой. Из-за этого "автоматического" метода db: test: в большинстве случаев больше не требуется.

Если вам нужно сделать это вручную по какой-либо причине, вы все равно можете использовать

rake db:schema:load RAILS_ENV=test