我正在使用 MongoDB Java 驱动程序在我的应用程序中执行一些持久性。我的应用程序的构建是通过 Maven 管理的,我正在寻找将一系列与 MongoDB 相关的单元测试集成到我的 Maven 构建过程中的最佳方法。我不能假设构建应用程序的用户已将 MongoDB 守护进程作为服务安装,因此需要在执行相关单元测试之前启动守护进程。
我的第一个想法是将二进制文件存储在测试目录的资源文件夹中(例如,src/test/resources)并使用 Runtime.exec() 启动守护程序。有没有更清洁的方法?我觉得 Runtime.exec() 是一种快速而肮脏的方式来让某些东西正常工作,但不是最理想的......我需要它在 linux 和 windows 上都可以工作。
最佳答案
我创建了一个包装 flapdoodle.de 'embedded mongo' API 的 Maven 插件。 :
它提供了一个 start
目标,您可以使用它来启动您想要的任何版本的 MongoDB(例如,在 pre-integration-test
期间)和一个 stop
将停止 MongoDB 的目标(例如,在 post-integration-test
期间)。
下载 MongoDB 二进制文件并将其存储在 ~/.embedmongo
中以供将来构建。
https://stackoverflow.com/questions/3187569/
相关文章:
django - docker-compose 用 mongodb 运行 django
mongodb - 使用 ReadPreference=NEAREST 的 Mongos 路由
mongodb - 与 nosql 的多对多关系(mongodb 和 mongoose)
javascript - Mongodb v4.0 事务,MongoError : Transact
mongodb - 可以在不存在的集合上调用 ensureIndex 吗?
java - 如何在 Spring Data MongoDB 存储库中查询日期?