Rspec не удаляет 2 конкретные таблицы - PullRequest
1 голос
/ 13 марта 2011

Я использую Rspec для тестирования приложения рельсов. У меня есть 2 таблицы, в которые я импортировал данные (база данных для тестирования и разработки)

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

поэтому при тестировании нет смысла удалять данные этих таблиц, но Rspec по-прежнему удаляет данные из них.

мой вопрос: как заставить Rspec не удалять данные из этих таблиц (никогда, никогда)?

мой вспомогательный файл спецификаций

require 'rubygems'
require 'spork'

Spork.prefork do

end

Spork.each_run do

end


ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

RSpec.configure do |config|
  config.mock_with :rspec

  config.fixture_path = "#{::Rails.root}/spec/fixtures"

  config.use_transactional_fixtures = true
end

1 Ответ

1 голос
/ 14 марта 2011

Решение находится в файле spec_helper.rb. Я должен изменить это

  config.use_transactional_fixtures = true

на это

  config.use_transactional_fixtures = false

В тестах, где мне нужно очистить базу данных, яочистите его вручную с помощью delete_all или database_cleaner (что вам удобно)

Это решило мою проблему и сделало базу данных постоянной в ходе тестирования.

...