asp.net – 如何自动执行功能/集成测试和数据库回滚
|
与我的 previous question相比,我会尽力满足我的要求. 我试图找到一些符合以下条件的框架/方法/“东西”: >能够使用C#编写自动化测试,最好用Visual Studio编写. 我的第一次尝试是使用NUnit测试来驱动Selenium(以及之前的Watin),但我在使用TransactionScope回滚Selenium驱动的浏览器在数据库中所做的更改时遇到了一些问题(请查看上面的链接). 有没有人在“现实世界”中做过这样的事情?我通过谷歌找到了一些参考资料,但是未能找到任何关于如何实现这一点的具体例子.如果我正在进行单元测试,那就不会有任何问题.在那种情况下,TransactionScope就足够了. 编辑:R.Harvey向我指出了this问题,这几乎与我的情况相同. 然而,这个问题几乎完全相同.我的应用程序是一系列服务的一部分,所有这些服务都访问同一组数据库表.所需的测试数据量不允许有效使用drop / create-scripts,因此是否有其他替代解决方案? 我们正在使用SQL Server 2005,而且我不是很精通数据库魔术,所以如果有一些方法可以使用除drop / create之外的sql脚本,那么这可能是一个选项. 编辑2: 基于答案和一些额外的头脑,我们将为开发人员提供更轻量级的数据库,以执行单元,集成和功能测试.这使我们能够使用sql脚本来设置和拆除测试. 解决方法在事务中进行的更改仅在所述事务中可见.将测试包装在事务范围中(如果可能的话)会使测试的行为与非常关键的方面(事务)中的实际行为不同.使用在每个测试套件之前恢复的数据库映像要好得多.这样,在套件完成并完成验证后,您将删除测试数据库.下一次运行,在套件设置期间,数据库将从保存的图像中重新创建,处于原始状态,准备进行测试.更好的方法是使用一个脚本从头开始部署数据库并在套件设置期间运行该脚本. 在每次测试之前恢复到原始状态是不可行的.更一般地说,进行冗长的单独测试设置和清理步骤是不可行的.当您添加更多测试时,将数据库恢复到测试之间的测试就绪状态所花费的时间将变得无法管理.拥有数百个测试的套件非常普遍,数万个测试的完整测试运行意味着只需要花费数小时来恢复数据库进行测试.设计您的个人测试,以便它们可以独立运行,即.即使测试N-1失败,测试N也必须产生有效的结果. 另一个需要考虑的是失败调查,您希望失败的测试使数据库处于可以调查有意义信息的状态,并且您希望后续测试能够运行并生成有效结果.有时这些要求会相互矛盾,但您必须考虑它们并围绕它们设计测试. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – C#:GDI:使用位图的保存方法过度写入图像
- asp.net – 移动浏览器设备检测在.NET
- asp.net – Wiki Content是否可移植?
- asp.net-mvc – 在ASP.NET身份中角色与声明的最佳实践
- asp.net-mvc – 将部分视图渲染为字符串MVC4
- asp.net-mvc – 如何使用Ninject将服务注入授权过滤器?
- Asp.Net Web API和WCF服务有什么区别?
- ASP.NET无法摆脱“500-内部服务器错误”
- 为什么默认的ASP.NET Forms认证Cookie在其默认名称=“.ASPX
- asp.net-mvc – 如何与NopCommerce MVC合作
- ASP.NET – 黑客死亡的黄色屏幕
- ASP.Net Checkbox值在回发错误?
- asp.net-mvc – 如何为MVC4配置Ninject并提供自定
- asp.net – HtmlGenericControl(“br”)呈现两次
- asp.net – IIS web部署 – 创建虚拟目录?
- asp.net-mvc – User.Identity.IsAuthenticated在
- asp.net-mvc – 从asp.net POST动作方法更新nhib
- asp.net-mvc – 如何根据用户过滤MVC 4中的结果
- asp.net-mvc – Html.BeginForm的默认区域是否始
- asp.net-mvc – 在部分视图中传递参数 – MVC3 /
