1

我有一个 ASP.Net MVC 项目,我想我可以使用 MS Test 或 NUnit 之类的工具来执行从控制器层到数据库的回归测试,但是我遇到了一个问题,即测试不是按顺序运行的(你可以在 MS Test 中使用有序测试,但测试仍然同时运行),另一个问题是如何允许从一个测试创建的数据可以访问另一个测试?

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

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

4

3 回答 3

0

测试应该始终相互独立,因此运行顺序无关紧要。如果您的测试依赖于其他测试,那么您将失去对所测试内容的控制。

于 2012-04-03T11:26:05.777 回答
0

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

按照 dskh 的回答,您需要独立测试,我已经通过两种方式完成了集成/回归黑盒测试。

首先:在您的测试设置中,设置任何前置条件数据值,以便您处于已知的“良好状态”。对于系统回归测试自动化,我有许多数据库脚本被调用以将数据重置为已知状态;这会增加一些依赖项,因此请注意设计。注意:在直接单元测试中,考虑使用模拟对象来消除依赖关系并使您的测试“测试一件事”。如果可以的话,模拟对象、存根方法调用等是可行的方法,这听起来很可能。

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

于 2012-04-03T15:17:14.740 回答
0

更新 下面的链接(我假设该项目)已失效。最好的选择可能是使用 Selenium 和页面对象模型。见这里:http ://code.tutsplus.com/articles/maintainable-automated-ui-tests--net-35089

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

https://github.com/robconery/Quixote

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

于 2013-07-04T03:05:46.343 回答