1

我有一个使用 MongoDB 数据库的 asp.net MVC 应用程序。我使用 SpecFlow 和 Selenium WebDriver 对其进行自动测试(BDD),并且我想在导航到某个 URL 或进行某些操作之前将我的数据库初始化为某种状态。有可能这样做吗?

4

1 回答 1

1

有可能这样做吗?

是的!

我通过以下方式做到了这一点:

1.当测试初始化​​ - 生成测试数据库(通过驱动程序以最简单的方式)。

users.Insert(new User(){ Id: "1", userName: "testUser" })

2.进行备份(我使用 mongodump 来做到这一点)

3.在测试开始之前,创建具有唯一名称 myApp_tests_guid 的数据库。将数据库名称保留在某处。

4.恢复数据库(mongorestore)

5.当测试完成或失败时——删除数据库。

6.一些特定测试的可选步骤是使用特定测试数据调整通用测试数据库。

就是这样。我使用备份/恢复方法的原因是性能。此外,对于测试,请确保您已禁用安全模式和日记功能——这会使事情变得更快。

于 2012-10-29T21:32:49.180 回答