有没有比WaTiR更好的单元测试工具来进行 Ruby Web 测试?还是事实上的标准?你使用什么单元测试工具?
8 回答
我们将它用于我们所有的 Web 应用程序测试,而不仅仅是基于 ruby 的 Web 应用程序。我们确实研究了许多产品,但认为 WaTiR 是最好的。另外它是用 Ruby 编写的,所以我们可以拍拍自己的后背,并互相告诉对方我们使用 Ruby 有多酷。
在仔细研究了服务员之后,我的团队决定使用 Selenium。
众多原因包括:
Steven 提到的 Selenium 具有更好的浏览器和跨平台支持。我们目前有运行 mac、linux 和 windows 的机器,带有 safari、firefox 和 ie。
Selenium 测试似乎比 waitr 运行得更快,特别是如果您利用 selenium 网格。
Selenium 测试可以用比 Ruby 更广泛的语言编写。
Selenium 有一个易于使用的 IDE。
用作网络爬取工具。正如我所听说的,WaTiR 也非常适合测试。请注意,每个浏览器都有自己的 WaTir 版本:WaTiR(IE)、FireWaTir(Firefox) 和 SafariWatiR(Safari)。
我觉得我不能将其中任何一个标记为答案。
根据我从回复中看到的情况,如果您坚持使用 Ruby 作为测试语言,WaTiR 是最好的语言之一。
由于跨浏览器支持和与语言无关的方法,我个人同意 Ryan Guest 关于 Selenium 的看法。另一方面,它使用自己的语言,所以要学习更多的东西。
Scott Hanselman 有一个名为“功能测试工具综述”的播客,其中谈到了这个问题。
归根结底,我认为答案是,如果 WaTiR 适合您的情况,它是一个很好的测试工具。
自 2007 年以来,我一直在使用 Watir,但更多的是作为脚本工具而不是单元测试工具。
作为手动测试人员,它对于一些重复性任务非常有用,但我从来没有真正“正确”地使用它(创建测试用例来查看哪些功能失败了等等)。
另外,我已经向我的一些程序员朋友展示了 Watir,他们在开发用 Java、PHP 甚至 ASP 编写的系统时使用它来帮助他们,所以仅仅因为 Watir 是一个 Ruby 项目,这并不意味着你应该只在其他 Ruby 项目中使用它:)
我使用 Watir 进行功能测试。
对于单元测试,如果可能的话,恕我直言,最好使用诸如 webrat 或 capybara 之类的“无头浏览器”解决方案,因为它们速度更快,并且不会因需要调用浏览器实例等而使事情复杂化。
您希望单元测试快速,以便它们可以在每个 CI 构建中运行。然后创建一个通宵构建,并让它运行你的功能测试,这样如果它们需要几个小时才能运行,这没什么大不了的。(一旦您获得了包含数千个功能/验收/回归测试的大型套件,即使使用更快的浏览器(例如新的 IE9、Firefox 或 Chrome)也需要数小时才能运行。
我还应该指出,通过新的 Watir-Webdrive 项目,您可以获得两全其美的效果。易于编码、非常“Rubyesque”的 Watir API,以及 selenium Webdriver 后端的广泛浏览器支持(IE、FF、Chrome、Opera、Headless)。
值得注意的是,FireWatir 项目已被纳入 Watir 核心,并于上周 1.6.2 版本中集成了代码库。
几年前我们看过 WaTiR 并出于各种原因决定反对它,主要是因为与 selenium 相比更易于使用(如编写代码与可视化工具)。
值得一提的是,进行测试构建的人不是开发人员,更不用说 Ruby 开发人员了。
这也不适用于 ruby 应用程序,但由于它是 web 并且 web 服务于 HTML,它应该不关心它是用什么构建的。