1

我正在开发的应用程序是一个 Velocity/Spring MVC/Mongo on tomcat 类型的 webapp。

我可以在 Embedded Mongo 上运行我的集成测试,使用EmbedMongo运行所有测试需要更长的时间,比如大约 1 分钟,但在已安装的 Mongo 上的测试数据库上,大约需要 15 秒。

在创建新数据库时使用嵌入式数据库进行集成测试真的有什么好处吗(在这种情况下,同一实例中的测试数据库)可以忽略不计?事实上,测试本身可以创建数据库和所需的集合。

除了在不需要常规安装的 CI 盒上使用 Embedded Mongo 之外,我看不出它有什么好处。

任何人都可以分享任何想法。

谢谢高拉夫

4

2 回答 2

1

看看那个链接: https ://stackoverflow.com/a/9830861/82609

看起来不错,但 MongoDB 在每次测试之间启动和关闭。

为了提高速度,您可能想要做的是为整个测试套件启动和关闭一次。我的意思是:在测试之间保持 MongoDB 实例正常运行。


但是您不希望您的测试相互依赖。因此,您可以做的是使用不同的数据库名称 (UUID),以便最终运行一个 MongoDB 实例,其中包含许多不同的数据库,每个测试一个。

或者您可以在每次测试之间清理您的数据库。

于 2013-01-05T12:55:27.860 回答
0

使用单独安装的实例,您需要为您的测试套件最小化所涉及的流程设置和拆卸成本,因此使用嵌入式数据库的好处。

于 2012-04-26T17:24:54.260 回答