【问题标题】:Why would I need to use NUnit with Selenium WebDriver?为什么我需要将 NUnit 与 Selenium WebDriver 一起使用?
【发布时间】:2013-02-25 21:56:44
【问题描述】:

我刚刚开始使用 Selenium,使用 VS2012 和 C#。我不确定是否需要使用单独的测试框架,例如 NUnit 或 HtmlUnit。我在没有使用 NUnit 的情况下试用了 C# 在线可用的 google 搜索示例,它运行良好。

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

【问题讨论】:

  • 除了 Colin 在下面所说的之外,它根本不是必需的,它只是最受欢迎的。如果您愿意,请坚持使用您知道的内容,例如 MSTest。

标签: c# nunit selenium-webdriver


【解决方案1】:

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

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

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

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

最终,仅仅因为您可以做某事并不意味着您应该做某事。如果您必须同时处理这两种情况,那么通过单元测试框架运行 Selenium 测试会很方便。它可能对你有用,它可能不会。

【讨论】:

  • 很抱歉,由于我在网上到处阅读 NUnit,因此我提出了相应的问题,我想我的一般问题是,为什么我需要在 Selenium 中使用任何其他测试框架?
  • 您可以将 NUnit 替换为您在上述答案中选择的单元测试框架,可能的好处是相似的。
  • 我已经更新了我的答案以表明它的一般性。我使用了 NUnit,因为这就是问题所在。如果您有首选的单元测试框架,请使用它。 NUnit 似乎确实是 .NET 的事实上的单元测试框架
  • 感谢科林的快速回复。之前没有使用任何测试框架,如果我的问题不准确,请原谅我。如果我使用 Selenium 编写自动化测试,为什么我需要使用任何其他测试框架,比如 NUnit?我不能只使用 Selenium 来编写我的测试吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 1970-01-01
相关资源
最近更新 更多