Встроенный MongoDB при запуске интеграционных тестов - PullRequest
108 голосов
/ 22 июня 2011

Мой вопрос - это вариант этого .

Поскольку мой проект веб-приложения на Java требует большого количества фильтров / запросов чтения и интерфейсов с такими инструментами, как GridFS, я изо всех силподумать о разумном способе использования MongoDB так, как предлагает приведенное выше решение.

Поэтому я рассматриваю возможность запуска встроенного экземпляра MongoDB вместе с моими интеграционными тестами.Я бы хотел, чтобы запускался автоматически (для каждого теста или для всего набора), сбрасывал базу данных для каждого теста и выключался вконец.Эти тесты могут выполняться на машинах разработки, а также на сервере CI, поэтому мое решение также должно быть переносным .

Может ли кто-нибудь, кто имеет больше знаний о MongoDB, помочь мне понятьвыполнимость этого подхода и / или, возможно, предложить какие-либо материалы для чтения, которые могли бы помочь мне начать?

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

Ответы [ 13 ]

1 голос
/ 13 февраля 2014

Подобно плагину embedmongo-maven-plugin, упомянутому здесь, есть также Gradle Mongo Plugin .

Как и плагин Maven, он также включает flapdoodle EmbeddedMongoDb api и позволяет запускать управляемый экземпляр Mongo из ваших сборок Gradle.

0 голосов
/ 08 июня 2017

Проверьте этот пример кода здесь: https://github.com/familysyan/embedded-mongo-integ. Нет установки, нет зависимости. Это просто независимый от платформы ant-скрипт, который делает загрузку и настройку для вас. Он также очищает все после ваших тестов.

0 голосов
/ 12 июня 2015

В работе вы будете использовать реальную базу данных.

Если вы хотите, чтобы ваши тесты отражали поведение вашего продукта в производстве, используйте реальный экземпляр Mongo.может не вести себя точно так же, как настоящий.При тестировании вы должны стремиться к правильности.Скорость исполнения идет вторым.

...