"rake spec" переносит базу данных каждый раз - PullRequest
0 голосов
/ 10 ноября 2010

Когда я запускаю любую из задач rspec через rake, база данных, кажется, удаляется и переносится, но если я запускаю их через скрипт / spec path / to / spec, это не так.Можно ли установить опцию, чтобы спецификация граблей не касалась базы данных?

Ответы [ 3 ]

1 голос
/ 10 апреля 2011

За то, что я делаю, я хочу это навсегда.Так что с rspec 2.5.0 и rails 3:

Скопируйте rspec.rake в вашу папку apps / lib / tasks из:

~/.rvm/gems/ruby-1.8.7-p302/gems/rspec-rails-2.5.0/lib/rspec/rails/tasks/rspec.rake

Добавьте это в начало файла:

  Rake::TaskManager.class_eval do
    def remove_task(task_name)
      @tasks.delete(task_name.to_s)
    end
  end
  def remove_task(task_name) 
    Rake.application.remove_task(task_name) 
  end
  remove_task 'spec'

Найдите и отредактируйте эту строку, чтобы вызвать noop:

spec_prereq = :noop #Rails.configuration.generators.options[:rails][:orm] == :active_record ?  "db:test:prepare" : :noop
1 голос
/ 10 ноября 2010

Не должно быть никаких миграций, только импорт db / schema.rb в вашу тестовую базу данных.Это ожидаемое поведение, поэтому в ваших тестах перед запуском используется свежая копия схемы базы данных.По каким причинам вы не хотите обновлять тестовую базу данных?

0 голосов
/ 26 марта 2014

У меня была такая же проблема и при запуске rspec из командной строки.В моих случаях я работал с устаревшей базой данных, в которой не было миграций, поэтому тесты не удавались, потому что миграции не могли быть выполнены.

Решением было отредактировать файл spec / spec_helper.rb и удалить следующую строку:

ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)

После этого тесты прошли без сбоев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...