【问题标题】:What is the difference between mocha and Selenium?Mocha和Selenium之间有什么区别?
【发布时间】:2014-05-18 14:58:18
【问题描述】:

我开始使用 Node.js 并正在寻找一个测试框架。

我找到了:

  • 摩卡

我知道使用 Mocha 可以用 JS 编写测试,而使用 Selenium 则必须使用 C# 等较低级别的语言编写测试。

除此之外,还有什么 Selenium 可以做而 Mocha 不能做的事情吗?

摩卡本身有什么用?

【问题讨论】:

    标签: node.js testing selenium mocha.js


    【解决方案1】:

    Mocha 和 Selenium 都处理测试软件,但它们解决的问题不同。

    Mocha 是测试运行框架。您告诉 Mocha 您有哪些测试以及您想要运行哪些测试,mocha 将运行您的测试并报告通过的测试和失败的测试。 Mocha 本身提供了一个测试运行框架。你通常会想要使用一个断言库,比如Chai。我有测试套件,其中唯一提供测试支持的库是 Mocha 和 Chai。这是一个完全可行的用例。

    Selenium 是一个用于控制浏览器的库。其主要范围是测试基于浏览器的软件。但是,它也可以用于抓取网站。这是 Selenium 可以做到而 Mocha 本身无法做到的事情。相反,Selenium 不是一个测试运行框架。 Selenium 没有专门用于划分测试和仅运行特定测试的设施。您必须依靠像 Mocha 这样的测试运行框架来分隔一个测试与另一个测试。

    如果您想编写一个测试基于浏览器的应用程序的测试套件,您可以将 Mocha 与 Selenium 一起使用。或者带有 Selenium 的 Jasmine(另一个测试运行框架)。或者您可以将 Behave(基于 Python 的测试运行程序)与 Selenium 一起使用。或者您可以将 Mocha 与其他一些控制浏览器的库一起使用。

    这个具体问题需要特殊处理:

    我知道使用 Mocha 可以用 JS 编写测试,而使用 Selenium 则必须使用 C# 等较低级别的语言编写测试。

    我不会将 C# 称为低级语言。无论如何,使用 Mocha 必须使用 JavaScript。 (有一个用于 Ruby 的测试库,也称为“Mocha”,但它不是 JavaScript 的 Ruby 版本。我假设您在谈论 JavaScript 版本,这使我的回答成为重言式,但我们在这里。)你可以将 Selenium 与 JavaScript、Python、C#、Java 和许多其他语言一起使用。

    【讨论】:

    • 为什么不能在 Selenium 中分隔测试?我只需安装 Selenium Web 驱动程序,创建一堆测试文件,每个测试文件都用于测试并按顺序运行它们 (node test<i>.js)。
    • 不是不能分隔,句号。正是 Selenium 不提供这样做的设施。没有 API 可以告诉 Selenium “这是一个测试”,“这是另一个”。如果你在多个文件中划分你的测试,你不会告诉 Selenium “运行这个测试”。你告诉 Node “运行这个文件”。另一方面,摩卡知道什么是测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 2015-05-08
    • 2018-12-23
    • 2010-11-07
    • 2014-07-20
    • 2011-03-01
    • 2013-02-20
    相关资源
    最近更新 更多