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