为什么我需要将NUnit与Selenium WebDriver一起使用?

时间:2013-02-25 21:56:45

标签: c# nunit selenium-webdriver

我刚开始使用Selenium,使用VS2012和C#。我不确定是否需要使用单独的测试框架,如NUnit或HtmlUnit。我尝试了在C#中在线使用的谷歌搜索示例,而不使用NUnit,它运行正常。

所以我的问题是,为什么我需要将NUnit与Selenium一起使用?

1 个答案:

答案 0 :(得分:10)

如果您不想,您不需要将NUnit(或任何其他单元测试框架)与Selenium一起使用。但是,在某些情况下,您可能希望使用NUnit(或其他)来利用其他功能。例如:

  • 如果您有现有的单元测试,它会将所有内容保存在一个地方。 (如果这是你想要组织的方式)
  • 如果您已经使用NUnit(或您首选的单元测试框架)进行单元测试,那么您可以重复使用用于NUnit的相同测试运行器(例如NUnit控制台,NUnit GUI,ReSharper等),这意味着您可以运行所有测试(NUnit和Selenium)只需按一下按钮/键盘快捷键。
  • 如果您使用持续集成,它可以通过现有的NUnit(或您喜欢的)测试运行器运行您的selenium测试,这意味着您不必单独为selenium测试配置持续集成服务器。

以上假设您已经进行了单元测试。如果您还没有单元测试,或者您只对Selenium测试感兴趣(例如,我们有开发团队和测试人员,我们编写单元测试,测试人员编写Selenium测试,他们彼此独立运行)然后就不需要添加额外的图层了。

单元测试框架和硒测试不同的东西。单元测试通常一次只查看一个代码单元(虽然在实践中,我发现它经常溢出到相邻单元中,特别是如果它们很小且具有确定性)。 Selenium将网页(或一系列页面)视为单个测试。 Selenium的测试需要一个系统将其许多组件集成在一起以运行测试。因此,它在更高级别进行测试,因为它一次检查很多东西。 (例如,系统可以处理请求,响应返回,响应包含预期数据,按下页面上的按钮执行正确的操作,转到正确的页面等)。

最终,仅仅因为你可以做某事并不意味着你应该这样做。如果必须同时处理两者,通过单元测试框架运行Selenium测试是一种方便。它可能适合你,也可能不适用。