Это именно та проблема, с которой я только что столкнулся - и у меня был странный опыт, когда эта проблема, похоже, не возникала, если я просто запускал "rake spec".
Не найдя очевидного ответа, я попробовал что-то, что, похоже, решило проблему! Кажется, что установка переменной класса внутри блока before () является виновником, если вы используете FactoryGirl.
У меня было что-то очень похожее:
factory :widget do
sequence(:name) { |n| "widget#{n}" }
end
, то:
describe Widget do
before(:each) { @widget = FactoryGirl.create(:widget) }
it ...yadda yadda...
@widget.foo()
end
end
автотест найдет проблемы ограничения уникальности. Я изменил тест rspect на это:
describe Widget do
let(:widget) { FactoryGirl.create(:widget) }
it ...yadda yadda...
widget.foo()
end
end
... и проблемы ограничения уникальности исчезли. Не уверен, почему это происходит, и похоже, что не должно произойти , но может быть работоспособным разрешением.