Огурец с Database_Cleaner для MySQL и MongoDB - PullRequest
2 голосов
/ 05 декабря 2010

Я создаю приложение Rails, которое использует MySQL для некоторых моделей и MongoDB для других (через гем mongo_mapper).

Мы начали создавать тесты на огурец (с капибарой и веб-драйверами) для приложения исталкиваются с некоторыми проблемами с ссылками на идентификаторы, которые не существуют.Я полагаю, что проследил это до старых данных в MongoDB.

На этом этапе database_cleaner выполняет свою работу с записями MySQL, но не с записями MongoDB.

Существует обсуждение проекта cucumber-rails об использовании MongoDB, но я полагаю, что предполагается, что вы используете только MongoDB, а не MongoDB и MySQL вместе.

Есть ли способ очистить database_cleanerи MySQL и MongoDB?Или это только один или другой?

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

Спасибо.

1 Ответ

1 голос
/ 05 декабря 2010

Предполагается, что вы делаете что-то вроде этого, когда говорите rails, с какой БД Mongo нужно поговорить:

MongoDatabase = "mongodb://localhost/yourdb_#{Rails.env}"

Затем в ваших тестах выполните:

/ spec / spec_helper.rb

MongoMapper.database.collections.select { |c| c.name != 'system.indexes' }.each(&:drop)  

(выше для MongoMapper, но идея для Mongoid та же: просто перейти на уровень базы данных и отбросить все коллекции).

Это приведет к удалению только данных в тестовой базе данных., а не ваш дБ.При использовании вместе с очистителем БД, вы готовы к работе.

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