mocha和Selenium有什么区别?

bat*_*man 14 testing selenium mocha.js node.js

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

我发现 :

  • 摩卡

据我所知,使用Mocha可以在JS中编写测试,而使用Selenium时,必须使用C#等低级语言编写测试.

除此之外,Selenium还能做些什么,摩卡不能做到吗?

摩卡有什么用途?

Lou*_*uis 29

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

Mocha是测试运行框架.你告诉Mocha你有什么测试以及你想要运行什么测试,mocha将运行你的测试并报告那些通过的和那些失败的测试.Mocha本身提供了一个测试运行框架.您通常希望使用断言库,如Chai.我有测试套件,唯一提供测试支持的库是Mocha和Chai.这是一个非常可行的用例.

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

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

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

据我所知,使用Mocha可以在JS中编写测试,而使用Selenium时,必须使用C#等低级语言编写测试.

我不会称C#为低级语言.无论如何,使用Mocha你必须使用JavaScript.(有一个Ruby的测试库也命名为"Mocha",但它不是JavaScript版本的Ruby版本.我假设你在谈论JavaScript版本,这使得我的回复变成了同义反复,但我们就是这样.)你可以使用Selenium与JavaScript,Python,C#,Java和许多其他语言.

  • 这不是他们不能划分,期间.这是*Selenium*不提供这样做的设施.没有API告诉Selenium"这里是一个测试","这里是另一个".如果将测试分成多个文件,则不要告诉*Selenium*"运行此测试".你告诉*Node*"运行这个文件." 另一方面,摩卡知道测试是什么. (5认同)
  • 为什么不能在Selenium中划分测试?我只需要安装Selenium Web驱动程序,创建一堆测试文件,每个测试文件用于测试并按顺序运行它们(`node test <i> .js`). (2认同)