【发布时间】:2009-09-24 05:04:07
【问题描述】:
相对于我的previous question,我会尽量给出我的要求。
我正在尝试找到一些符合以下条件的框架/方法/“事物”:
- 能够使用 C# 编写自动化测试,最好是在 Visual Studio 中编写。
- 测试应该像用户一样驱动 Web 浏览器并与 SUT 交互。
- 测试应该能够在 DB 中设置测试场景。
- 测试应该能够断言用户交互在 DB 中具有预期的效果。
- 测试完成后,它应该能够回滚它在 DB 中所做的所有更改。
我的第一次尝试是使用 NUnit 测试来驱动 Selenium(以及之前的 Watin),但是在使用 TransactionScope 回滚 Selenium 驱动的浏览器在数据库。
有没有人在“现实世界”中做过这样的事情?我通过谷歌找到了一些参考资料,但还没有找到任何具体的例子来说明如何实现这一点。如果我要进行单元测试,就不会有任何问题。在这种情况下,TransactionScope 就足够了。
编辑: R. Harvey 向我指出了this 问题,这与我的情况几乎相同。
不过,这个问题几乎完全相同。我的应用程序是一系列服务的一部分,它们都访问同一组数据库表。所需的测试数据量不允许有效使用 drop/create-scripts,那么是否有一些替代解决方案呢?
我们使用的是 SQL Server 2005,而我对数据库魔法不是很精通,所以如果除了 drop/create 之外还有其他方法可以使用 sql 脚本,那么这可能是一种选择。
编辑 2:
根据答案和一些额外的头疼问题,我们将为开发人员寻找更轻量级的数据库来执行单元、集成和功能测试。这使我们能够使用 sql 脚本来设置和拆除测试。
【问题讨论】:
-
这可能会有所帮助:stackoverflow.com/questions/768944/…
-
是的,我对 Selenium 本身没有任何问题。似乎是一个很棒的工具!问题在于将 Selenium 驱动的 broser 所做的更改回滚到 db 中。
-
天哪,我怎么能错过。在发布此之前,我尝试进行广泛的搜索,但该问题中的场景几乎是复制品。我将在我的问题中添加一点以区别于他们的情况...
标签: asp.net database automated-tests integration-testing functional-testing