我正在使用MongoDB Java驱动程序在我的应用程序中执行一些持久性.我的应用程序的构建是通过Maven管理的,我正在寻找将一系列与MongoDB相关的单元测试集成到我的Maven构建过程中的最佳方法.我不能假设构建应用程序的用户已将MongoDB dameon安装为服务,因此需要在执行相关单元测试之前启动守护程序.
我的第一个想法是将二进制文件存储在测试目录的resources文件夹中(例如,src/test/resources),并使用Runtime.exec()启动守护程序.有没有更清洁的方法?我觉得Runtime.exec()是一种快速而肮脏的方式来使某些东西工作但不是最理想的...我需要这个在linux和windows上工作.
我创建了一个包装flapdoodle.de'嵌入式mongo'API的Maven插件:
它提供了一个start
目标,您可以使用它来启动您想要的任何版本的MongoDB(例如在期间pre-integration-test
),以及一个stop
将停止MongoDB 的目标(例如在期间post-integration-test
).
下载并存储MongoDB二进制文件以~/.embedmongo
供将来构建.