Использовать монгольский сервер MongoDB для модульного тестирования

Я должен реализовать nosetests для кода Python, используя магазин MongoDB. Есть ли библиотека python, которая позволяет мне инициализировать mock-сервер MongoDB в памяти?

Я использую непрерывную интеграцию. Итак, я хочу, чтобы мои тесты не зависели от любого сервера MongoDB. Есть ли способ обмануть сервер mongoDM в памяти для проверки кода независимо от подключения к серверу Mongo?

Заранее спасибо!

  • удаление каждого n-го элемента из списка в python 2.7
  • Установите NLTK в python 2.7 для 64-разрядной машины
  • Экземпляры Google App Engine продолжают быстро закрываться
  • SSphase-парольная фраза / пароль в Python
  • Python threading.timer - повторять функцию каждые n секунд
  • PyQt4 установить значок панели задач Windows
  • Python работает в PyCharm, но не с терминала
  • Python автоматически выбирает последовательные порты (для Arduino)
  • 3 Solutions collect form web for “Использовать монгольский сервер MongoDB для модульного тестирования”

    Вы можете попробовать: https://github.com/vmalloc/mongomock , целью которого является небольшая библиотека для издевательских объектов коллекции pymongo для целей тестирования.

    Тем не менее, я не уверен, что стоимость просто запуска mongodb будет запретительной по сравнению с тем, чтобы какая-то насмешливая библиотека была полной.

    Я не знаю о Python, но у меня была аналогичная проблема с C #. Я решил просто запустить настоящий экземпляр Mongo на моей рабочей станции, указав на пустой каталог. Это не здорово, потому что код не изолирован, но он быстрый и легкий.

    Только уровень доступа к данным фактически вызывает Mongo во время теста. Остальные могут полагаться на mocks уровня доступа к данным. Мне не хотелось притворяться, что Монго стоило усилий, когда я действительно хочу проверить, что взаимодействие с Монго все равно.

    Вы можете использовать Ming, у которого есть замена связи pongongo в памяти mongo db.

    import ming mg = ming.create_datastore('mim://') mg.conn # is the connection mg.db # is a db with no name mg.conn.somedb.somecol # >> mim.Collection(mim.Database(somedb), somecol) col = mg.conn.somedb.somecol col.insert({'a': 1}) # >> ObjectId('5216ac3fe0323a1218f4e9aa') col.find().count() # >> 1 
    Python - лучший язык программирования в мире.