Тестовый модуль Rails 2.3.2 проходит при работе с обычным ruby, не проходит при запуске с тестом rake: unit - PullRequest
2 голосов
/ 11 июня 2009

При создании записи в модульном тесте я получаю 'ActiveRecord :: RecordInvalid', когда она запускается с тестом rake: unit. Я не получаю эту ошибку, когда запускаю модульный тест вручную с помощью ruby ​​('ruby unit / blah_test.rb'). Я сузил проблему до проверки, которая существует в моей модели. Это проверка включения, которая фактически выполняет поиск по другой модели, чтобы получить действительные значения. Я думаю, это связано с тем, что приборы не загружаются вовремя, но у меня есть «fixtures: all» в моем test_helper.rb (я также пытался включить «fixtures: all» в сам модульный тест.

Есть ли у кого-нибудь предложения о том, как я могу попытаться сузить это дело?

Спасибо.

1 Ответ

1 голос
/ 11 июня 2009

Конечно, то, что вы видите, будет соответствовать отсутствующим светильникам. При rake test:units тестовая схема базы данных будет настроена (и очищена), поэтому приборы вашей включенной модели могут не заполняться. При прямом вызове вы будете использовать тестовую базу данных в том состоянии, в котором вы ее оставили в последний раз, что, вероятно, включает в себя исправления для включенной модели.

Есть ли еще один вызов на fixtures в тестовом классе, который может вызывать fixtures :all, чтобы не срабатывать?

Вы можете попробовать выполнить rake db:test:prepare до запуска теста через ruby, что означает, что вы работаете в новой тестовой базе данных. Это будет дополнительно выделено, если приборы не загружаются для включенной модели.

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