【问题标题】:Pre-populate MongoDB database with Maven使用 Maven 预填充 MongoDB 数据库
【发布时间】:2012-10-07 09:11:03
【问题描述】:

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

【问题讨论】:

标签: java mongodb maven


【解决方案1】:

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

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

【讨论】:

  • 谢谢,但我不认为 DBUnit 能够使用 MongoDB 数据库。
  • 好的,我认为它有一个标准的 jdbc 驱动程序。也许 NoSQLUnit 可能是这样的:lordofthejars.com/2012/06/nosqlunit-030-released.html
  • 谢谢!看起来 NoSQLUnit 正在积极开发中,我一定要试一试!
【解决方案2】:

您可以使用Mongo Java API 通过DB.doEval() 方法将脚本运行到数据库中。如果您已经有一个正在运行的数据库,那么连接和运行脚本可以作为您的测试设置的一部分。

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

【讨论】:

  • 谢谢!这似乎是正确的解决方案。而且(如果重要的话)我在我的项目中使用 Spring Data for MongoDB,但我可以轻松访问底层 API。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多