Тестирование рельсов с заводами. Проблема уникальности транзакций - PullRequest
0 голосов
/ 22 марта 2010

Я продолжаю получать ошибки проверки при запуске фабрик из-за ограничений уникальности полей. Я использую musta с factory_girl. У меня есть и модульный тест, и функциональный тест, создающий 2 продукта в базе данных. Я могу запускать 'rake test: units' и 'rake test: функционалы' снова и снова в любом порядке, и все будет зеленым, но когда я запускаю 'rake test', который запускает модули, за которыми следуют функционалы, я получаю ошибки из-за уникальности .

Я также пытался создавать модели, чтобы сломать уникальность в 2 разных модульных тестах, и тогда я тоже получаю ошибку.

Я играл с этими настройками в test_helper.rb, но не могу заставить что-либо работать

class ActiveSupport::TestCase
  self.use_transactional_fixtures = true
  self.use_instantiated_fixtures  = false
end

Влияет ли настройка транзакции транзакции на фабрики? Каков наилучший способ очистки базы данных между тестами?

1 Ответ

1 голос
/ 23 марта 2010

(Вздох ..)

Итак, проблема заключалась в том, что я копировал код из документов musta и в итоге объявил свои тестовые классы так:

class UserTest < Test::Unit::TestCase

Однако для того, чтобы настройка транзакционных приспособлений имела какой-либо эффект, вам нужно наследовать от ActiveSupport :: TestCase, объявив свои классы

class UserTest < ActiveSupport::TestCase

Надеюсь, это поможет спасти кого-то еще.

...