У моей команды была точно такая же проблема, но мы не могли найти какой-либо чистый способ ее решения.Мы даже пошли по неверному пути использования плагина ant-run для выполнения некоторых задач Ant (независимо от ОС), которые при необходимости запускали бы демон MongoDB.В итоге мы отказались от всего этого в пользу класса AbstractMongoDbTest, который в своем методе @Before утверждает, что MongoDB запущен, и, если нет, не проходит тест с очень конкретным сообщением, побуждающим пользователя запустить Mongo.Это не идеально, но, к сожалению, если вы вводите внешнюю зависимость в свои модульные тесты, они больше не являются модульными тестами, это интеграционные тесты, и вполне разумно требовать, чтобы люди имели доступную зависимость.
Другие параметры:
Если все разработчики находятся в одной сети, вы можете настроить выделенный экземпляр MongoDB на сервере и сделать так, чтобы все тесты указывали на его имя хоста вместо localhost (по умолчанию).
Вы также можете абстрагировать все взаимодействия с MongoDB за интерфейсами с репозиторием и реализациями MongoDB.В любом случае, это хорошая идея.Это позволит вашим тестам либо макетировать интерфейсы репо, либо создавать заглушки сервисов.Это не позволит вашим модульным тестам стать интеграционными тестами.Это также имеет то преимущество, что если вы когда-нибудь решите перейти от MongoDB к CouchDB или даже к реляционной базе данных, такой как Oracle, ваши тесты не нужно менять, вам просто нужно создавать новые реализации интерфейсов репо.