【发布时间】:2011-09-20 04:51:00
【问题描述】:
我的问题是this one 的变体。
由于我的 Java Web 应用程序项目需要大量读取过滤器/查询以及与 GridFS 等工具的接口,因此我正在努力想出一种以上述解决方案建议的方式使用 MongoDB 的明智方法。
因此,我正在考虑在集成测试的同时运行一个嵌入式 MongoDB 实例。我希望它自动启动(对于每个测试或整个套件),刷新数据库对于每个测试,然后关闭 最后。这些测试可能会在开发机器和 CI 服务器上运行,所以我的解决方案也需要便携。
任何对 MongoDB 有更多了解的人都可以帮助我了解这种方法的可行性,和/或建议任何可以帮助我入门的阅读材料吗?
我也愿意接受人们可能提出的关于如何解决这个问题的其他建议...
【问题讨论】:
-
如果你使用的是maven,你可以使用我们的mvnrepository.com/artifact/com.wenzani/mongodb-maven-plugin
-
你也可以查看这个项目,它在 JVM 内存中模拟了一个 MongoDB。 github.com/thiloplanz/jmockmongo 但它仍在开发中。
-
不 [仅用于] 单元测试,但如果您使用 Linux 时希望将 MongoDB(甚至是集群)作为内存部署运行,请阅读这篇博文。 edgystuff.tumblr.com/post/49304254688 不过,如果能像 RavenDB 一样开箱即用,那就太好了。
-
与这里提到的 embedmongo-maven-plugin 类似,也有一个Gradle Mongo Plugin 可用。与 Maven 插件一样,它也包装了 flapdoodle EmbeddedMongoDb api,并允许您从 Gradle 构建中运行 Mongo 的托管实例。
-
在此处查看此代码示例:github.com/familysyan/embedded-mongo-integ。无需安装,无需依赖。它只是一个独立于平台的 ant 脚本,可以为您下载和设置。它还会在您的测试后清理所有内容。
标签: java mongodb junit integration-testing embedded-database