Почему моя тестовая база данных пуста до и после запуска rails test? - PullRequest
0 голосов
/ 06 января 2012

Хотя большинство людей хотят, чтобы их база данных была пустой между запусками модульного / функционального теста, я отлаживаю проблему и нахожу неудобным и довольно удивительным, что моя тестовая база данных пуста до и после выполнения теста.Даже если я добавлю что-то в настройку и разборку, чтобы распечатать размер конкретной таблицы, при настройке всегда будет 0, а при разборке - больше 0.

Что это делает для меня?У меня нет фиксаторов (я закомментировал стандартные «fixtures: all» в test_helper), и я использую простые модульные / функциональные тесты, которые расширяют ActiveSupport :: TestCase (без RSpec или чего-либо подобного).С тех пор, как я создал проект rails, я не добавлял много / никаких пользовательских настроек / настроек.

Я использую Rails 3.0.9 и Ruby 1.8.7.

Все идеи приветствуются!

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Вы можете отключить это поведение, установив use_transactional_fixtures в false:

class MyTest < ActiveSupport::TestCase
  self.use_transactional_fixtures = false
end 
0 голосов
/ 06 января 2012

Модульные тесты должны иметь известное свежее состояние, поэтому БД очищается.

Предотвращение уничтожения тестовой базы данных довольно легко с RSpec. Не уверен, как бы вы это делали в контексте встроенного в Rails Test :: Unit материала, но вы могли бы рассмотреть одну вещь, если это просто для быстрой отладки, - это просто использовать регистратор и подогнать протокол теста:

Rails.logger.info "\n\nThe value of foo is #{foo}\n\n"

Это упадет в test.log и поставит пару разрывов строк с каждой стороны, чтобы вам было легко увидеть его среди всего остального, что есть.

Надеюсь, это поможет.

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