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