加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

用于TDD的JavaScript单元测试工具

发布时间:2020-12-14 01:50:52 所属栏目:百科 来源:网络整理
导读:我已经研究并考虑了许多JavaScript单元测试和测试工具,但是没有找到一个合适的选项保持完全TDD兼容。那么,是否有一个完全符合TDD标准的JavaScript单元测试工具? Karma或 Protractor Karma是一个用Node.js构建的JavaScript测试程序,用于单元测试。 量角器
我已经研究并考虑了许多JavaScript单元测试和测试工具,但是没有找到一个合适的选项保持完全TDD兼容。那么,是否有一个完全符合TDD标准的JavaScript单元测试工具?
Karma或 Protractor

Karma是一个用Node.js构建的JavaScript测试程序,用于单元测试。

量角器用于端到端测试,并使用Selenium Web Driver来驱动测试。

两者都是由Angular团队制作的。你可以使用任何你想要的断言库。

截图:Karma Getting started

有关:

> Should I be using Protractor or Karma for my end-to-end testing?
> Can Protractor and Karma be used together?

专业:

>使用node.js,从而兼容Win / OS X / Linux
>从浏览器或无头与PhantomJS运行测试
>一次在多个客户端上运行
>启动,捕获和自动关闭浏览器的选项
>选择在开发计算机上或单独运行服务器/客户端
>从命令行运行测试(可以集成在ant / maven中)
>写测试xUnit或BDD样式
>支持多个JavaScript测试框架
>保存时自动运行测试
>代理请求跨域
>可以自定义:

>扩展它以包装其他测试框架(Jasmine,Mocha,QUnit内置)
>你自己的断言/驳斥
>记者
>浏览器启动器

> WebStorm插件
>由Netbeans IDE支持

缺点:

> not support NodeJS (i.e. backend)测试
>没有Eclipse的插件(还)
>没有以前的测试结果的历史

Buster.js

使用Node.js构建的JavaScript测试运行器。非常模块化和灵活。它有自己的断言库,但你可以添加自己的,如果你喜欢。 assertions library是去耦的,所以你也可以使用它与其他测试跑者。而不是使用assert(!…)或expect(…)。不…,它使用refute(…)这是一个很好的扭曲imho。

A browser JavaScript testing toolkit. It does browser testing with browser automation (think JsTestDriver),qunit style static html page testing,testing in headless browsers (phantomjs,jsdom,…),and more. Take a look at 07008!

A Node.js testing toolkit. You get the same test case library,assertion library,etc. This is also great for hybrid browser and Node.js code. Write your test case with Buster.JS and run it both in Node.js and in a real browser.

截图:Buster.js Getting started(2:45)

专业:

>使用node.js,从而兼容Win / OS X / Linux
>从浏览器或无头与PhantomJS运行测试(很快)
>一次在多个客户端上运行
>支持NodeJS测试
>不需要在开发计算机上运行服务器/客户端(不需要IE)
>从命令行运行测试(可以集成在ant / maven中)
>写测试xUnit或BDD样式
>支持多个JavaScript测试框架
>推迟测试,而不是注释掉
> SinonJS内置
> Auto-run tests on save
>代理请求跨域
>可以自定义:

>扩展它以包装其他测试框架(JsTestDriver内置)
>你自己的断言/驳斥
> Reporters(xunit XML,传统点,规范,tap,teamcity等更多内置)
>自定义/替换用于运行浏览器测试的HTML

> TextMate和Emacs集成

缺点:

> Stil在beta,所以可以是越野车
>没有插件Eclipse / IntelliJ(尚)
>不通过os / browser /版本,如TestSwarm *分组结果。但它打印出测试结果中的浏览器名称和版本。
>没有之前的测试结果的历史TestSwarm *
>在Windows as of May 2014上不能完全工作

* TestSwarm也是一个持续集成服务器,而您需要一个单独的CI服务器为Buster.js。但它输出xUnit XML报告,因此它应该很容易与Hudson,Bamboo或其他CI服务器集成。

TestSwarm

https://github.com/jquery/testswarm

TestSwarm正式不再在他们的GitHub网页上所述的积极发展。他们推荐Karma,browserstack-runner或者Intern。

BrowserSwarm

网站www.browserswarm.com已经死了,BrowserSwarm最近没有搜索结果。它似乎已经死了。

BrowserSwarm是一个来自appendTo,Sauce Labs和Internet Explorer团队的项目。它本质上是一个托管分支版本的TestSwarm。

除了TestSwarm的所有优点,BrowserSwarm已经将所有的浏览器连接到swarm并准备测试你的代码,因此不需要你自己添加客户端或维护安装的浏览器。还节省了设置和配置TestSwarm的麻烦。

Jasmine

这是一个客户端测试跑者,可能会对熟悉Ruby或Ruby on Rails的开发人员感兴趣。语法基于RSpec,用于在Rails项目中测试。

Jasmine is a behavior-driven development framework for testing your JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM.

如果你有这个测试跑者的经验,请提供更多信息:)

项目主页:http://jasmine.github.io/

QUnit

QUnit专注于在浏览器中测试JavaScript,同时为开发人员提供尽可能多的便利。从网站Blurb:

QUnit is a powerful,easy-to-use JavaScript unit test suite. It’s used by the jQuery,jQuery UI and jQuery Mobile projects and is capable of testing any generic JavaScript code

QUnit与TestSwarm共享一些历史(上面):

QUnit was originally developed by John Resig as part of jQuery. In 2008 it got its own home,name and API documentation,allowing others to use it for their unit testing as well. At the time it still depended on jQuery. A rewrite in 2009 fixed that,now QUnit runs completely standalone.
QUnit’s assertion methods follow the CommonJS Unit Testing specification,which was to some degree influenced by QUnit.

项目主页:http://qunitjs.com/

Sinon

另一个伟大的工具是sinon.js由Christian Johansen,作者的Test-Driven JavaScript Development.最好描述自己:

Standalone test spies,stubs and mocks
for JavaScript. No dependencies,works
with any unit testing framework.

Intern

Intern Web site提供了与此列表上其他测试框架的直接功能比较。它提供了比任何其他基于JavaScript的测试系统更多的功能。

mocha.js

我完全不合格评论mocha.js的功能,优势和弱点,
但它只是推荐给我的人,我相信在JS社区。

功能列表,由其网站报告:

>浏览器支持
>简单异步支持,包括promise
>测试覆盖报告
> string diff支持
> javascript API用于运行测试
> CI支持的正确退出状态等
>自动检测和禁用非ttys的着色
>将未捕获异常映射到正确的测试用例
>异步测试超时支持
>测试特定的超时
>咆哮通知支持
>报告测试持续时间
>突出显示慢测试
>文件观察器支持
>全局变量泄漏检测
>可选择运行与regexp匹配的测试
>自动退出以防止“挂起”与主动循环
>容易元生成套房&测试用例
> mocha.opts文件支持
>可点击的套件标题来过滤测试执行
>节点调试器支持
>检测多个调用done()
>使用任何你想要的断言库
>可扩展报告,与9个记者绑定
>可扩展测试DSL或“接口”
>之前,之后,每个之前,每个钩子之后
>任意转换器支持(咖啡脚本等)
> TextMate bundle

yolpo

Yolpo是一个可视化JavaScript执行的工具。鼓励Javascript API开发人员编写他们的用例来显示和告诉他们的API。这样的用例形成回归测试的基础。

AVA

未来的测试运行器,内置支持ES2015。即使JavaScript是单线程的,Node.js中的IO也可能由于其异步性而并行发生。 AVA利用了这一点并同时运行测试,这对IO重型测试尤其有利。此外,测试文件作为单独的进程并行运行,为每个测试文件提供更好的性能和隔离的环境。

>最小和快速>简单的测试语法>同时运行测试>强制编写原子测试>没有隐式全局变量>每个测试文件的隔离环境>在ES2015中编写测试>承诺支持>发生器功能支持>异步功能支持>可观察支持>增强断言>可选TAP输出>清除堆栈跟踪

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读