如何为回归测试构建依赖测试

时间:2012-04-03 10:47:46

标签: asp.net-mvc msbuild nunit regression-testing

我有一个ASP.Net MVC项目,我认为我可以使用像MS Test或NUnit这样的工具来执行从控制器层到数据库的回归测试,但是我遇到的问题是测试不是设计用于运行order(您可以在MS Test中使用有序测试,但测试仍然同时运行),另一个问题是如何允许从一个测试创建的数据可以访问另一个?

我看过Selenium和WatiN,但我只是想写一些不依赖于UI层的东西,这很可能会改变增加维护测试的工作量。

有什么建议吗?这只是错误的工具吗?我应该只使用Selenium / WatiN吗?

3 个答案:

答案 0 :(得分:0)

测试应始终彼此独立,因此运行顺序无关紧要。如果您的测试依赖于其他测试,那么您将无法控制您正在测试的内容。

答案 1 :(得分:0)

WatiN,我假设Selenium,不会解决您的订购问题。我使用WatiN和NUnit进行UI自动化,并且无法保证运行顺序,这最初会对您所看到的问题产生类似的问题。

根据dskh的回答,您需要进行独立测试,我已经通过两种方式完成了积分/回归黑盒测试。

首先:在您的测试设置中,设置任何前置条件数据值,以便您处于已知的“良好状态”。对于系统回归测试自动化,我有许多数据库脚本被调用以将数据重置为已知状态;这增加了一些依赖性,所以要注意设计。注意:在直接单元测试中,请查看使用模拟对象来取出依赖项并让您的测试“测试一件事”。模拟对象,存根方法调用等是可行的方法,根据您的问题听起来很可能。

第二:对于必须以某种方式设置某些事物的情况,并将它们编写为测试设置脚本添加了大量必要的系统内部知识(例如:所有用户设置+所有权限设置+等等)在自己的命名空间中设置了少量的“bootstrap”测试,以便通过NUnit轻松运行,以引导系统。保持测试数量小并确保测试非常稳定是至关重要的。现在,在全新安装时,首先运行自举测试并作为高级烟雾测试;如果任何引导程序测试失败,则不会运行进一步的测试。在某些方面它很笨拙,但替代方案是笨拙的或更多的时间/资源/消费。

答案 2 :(得分:0)

<强>更新 下面的链接(我假设该项目)已经死了。 最好的选择可能是使用Selenium和Page Object Model。 见这里:http://code.tutsplus.com/articles/maintainable-automated-ui-tests--net-35089

旧答案 我找到的最简单的解决方案是Rob Conery的Qixote:

https://github.com/robconery/Quixote

它通过触发http请求和消费响应来工作。 易于设置和使用,并提供集成测试。此工具还允许执行一系列测试以创建测试依赖项。

相关问题