使用Maven预填充MongoDB数据库

时间:2012-10-17 06:56:01

标签: java mongodb maven

我想在Maven Java项目中使用一些数据预先填充MongoDB数据库以进行集成测试。我可以通过手动执行mongo shell中的脚本(./mongo server:port/database --quiet my_script.js)轻松实现这一点,但是如何使用Maven执行此操作?

3 个答案:

答案 0 :(得分:4)

在运行测试之前,MongoDB数据库是否正在运行?或者你作为测试的一部分启动服务器?

在任何一种情况下,我认为可以使用dbunit maven插件加载带有testdata的外部文件。看看http://mojo.codehaus.org/dbunit-maven-plugin/operation-mojo.html

答案 1 :(得分:1)

您可以使用Mongo Java API使用DB.doEval()方法将脚本运行到数据库中。如果您已经有一个正在运行的数据库,则可以在测试设置中连接并运行该脚本。

也就是说,对于我的一些项目,我使用Maven和embedmongo Maven插件,它允许动态创建mongo数据库进行集成测试。这与您的脚本结合使用可能是一种替代解决方案,它不依赖于现有的Mongo数据库运行。

答案 2 :(得分:0)

您现在可以使用embedmongo-maven-plugin来实现此目的。它有一个mongoimport目标来运行mongoimport或mongo-scripts目标来评估任意js脚本。