java - 使用 Maven 启动 MongoDB

我正在使用 MongoDB Java 驱动程序在我的应用程序中执行一些持久性。我的应用程序的构建是通过 Maven 管理的,我正在寻找将一系列与 MongoDB 相关的单元测试集成到我的 Maven 构建过程中的最佳方法。我不能假设构建应用程序的用户已将 MongoDB 守护进程作为服务安装,因此需要在执行相关单元测试之前启动守护进程。

我的第一个想法是将二进制文件存储在测试目录的资源文件夹中(例如,src/test/resources)并使用 Runtime.exec() 启动守护程序。有没有更清洁的方法?我觉得 Runtime.exec() 是一种快速而肮脏的方式来让某些东西正常工作,但不是最理想的......我需要它在 linux 和 windows 上都可以工作。

最佳答案

我创建了一个包装 flapdoodle.de 'embedded mongo' API 的 Maven 插件。 :

embedmongo-maven-plugin

它提供了一个 start 目标,您可以使用它来启动您想要的任何版本的 MongoDB(例如,在 pre-integration-test 期间)和一个 stop 将停止 MongoDB 的目标(例如,在 post-integration-test 期间)。

下载 MongoDB 二进制文件并将其存储在 ~/.embedmongo 中以供将来构建。

https://stackoverflow.com/questions/3187569/

相关文章:

node.js - Mongoose 嵌套模式与嵌套模型

django - docker-compose 用 mongodb 运行 django

python - 如何将数据读入 TensorFlow?

mongodb - 使用 ReadPreference=NEAREST 的 Mongos 路由

mongodb - 与 nosql 的多对多关系(mongodb 和 mongoose)

javascript - Mongodb v4.0 事务,MongoError : Transact

mongodb - 可以在不存在的集合上调用 ensureIndex 吗?

java - 如何在 Spring Data MongoDB 存储库中查询日期?

mongodb - 在 mongo 聚合中选择 * group by

mongodb - 文档数据库是否适合存储大量股票报价数据?