У меня есть набор тестов Rails, в котором используются DatabaseCleaner
, FactoryGirl
и Capybara-Webkit
. Все мои тесты проходят на моей машине при запуске пакета, в том числе при их параллельном запуске (parallel_rspec
).
Когда я нажимаю на CI (circleci), я всегда получаю отказ в своих интеграционных тестах. Я подозреваю, что это потому, что я использую стратегию transaction
в своих модульных тестах (контроллеры, сервисы, представления и т. д.). Возможно, это плохая практика, но если мне нужна модель в моем контроллере (например), я делаю FactoryGirl.create(:my_model)
. Но я подозреваю, что в каждом месте, где я использую FactoryGirl для создания модели, я также должен использовать в этом тесте стратегию truncation
в DatabaseCleaner.
Я только что пометил весь свой пакет для использования truncation
и переместил его в CI, и он стал зеленым, и это здорово, но теперь для запуска пакета требуется на 50% больше времени.
Итак, при создании экземпляров моделей ActiveRecord
с FactoryGirl
должен ли я ВСЕГДА отмечать эти тесты для использования truncation
?
Спасибо за любой отзыв.