用于TDD的JavaScript单元测试工具
我研究并考虑了许多JavaScript单元测试和测试工具,但一直未能找到合适的选项来保持TDD完全兼容。 那么,是否有一个完全符合TDD标准的JavaScript单元测试工具?
噶或量角器
Karma是一个使用Node.js构建并用于单元测试的JavaScript测试运行器。
量角器用于端到端测试,并使用Selenium Web Driver来驱动测试。
两者都是由Angular团队制作的。 你可以使用任何你想要的断言库。
Screencast:Karma入门
相关 :
优点 :
缺点 :
mocha.js
我完全没有资格评论mocha.js的特性,优势和弱点,但是这只是由我信任JS社区的人推荐给我的。
正如其网站所报告的功能列表:
yolpo
这不再存在,而是重定向到sequential.js
Yolpo是一个可视化JavaScript执行的工具。 我们鼓励JavaScript API开发人员编写他们的用例来展示并告诉他们的api。 这些用例构成了回归测试的基础。
AVA
未来派测试赛跑者,内置ES2015支持。 尽管JavaScript是单线程的,但由于其异步特性,Node.js中的IO可以并行发生。 AVA利用这一点并同时运行您的测试,这对于IO测试尤其有利。 另外,测试文件作为单独的进程并行运行,为每个测试文件提供更好的性能和独立的环境。
Buster.js
一个使用Node.js构建的JavaScript测试运行器。 非常模块化和灵活。 它带有自己的断言库,但是如果你喜欢,你可以添加自己的断言库。 断言库是解耦的,所以你也可以将它与其他测试运行器一起使用。 而不是使用assert(!...)
或expect(...).not...
,它使用refute(...)
,这是一个不错的转折。
一个浏览器JavaScript测试工具包。 它使用浏览器自动化进行浏览器测试(例如JsTestDriver),qunit风格的静态HTML页面测试,在无头浏览器(phantomjs,jsdom,...)中测试等等。 看看概述!
一个Node.js测试工具包。 您可以获得相同的测试用例库,断言库等。这对混合浏览器和Node.js代码也很有用。 用Buster.JS编写测试用例,并在Node.js和真实浏览器中运行它。
Screencast:Buster.js入门(2:45)
优点 :
缺点 :
* TestSwarm也是一个持续集成服务器,而您需要一个单独的CI服务器用于Buster.js。 但是,它会输出xUnit XML报告,因此应该很容易与Hudson,Bamboo或其他CI服务器集成。
TestSwarm
https://github.com/jquery/testswarm
正如他们的GitHub网页所述,TestSwarm正式不再处于积极的发展状态。 他们推荐Karma,browserstack-runner或Intern。
茉莉花
这是一个客户端测试运行者,可能会让熟悉Ruby或Ruby on Rails的开发人员感兴趣。 该语法基于用于在Rails项目中进行测试的RSpec。
Jasmine是一个用于测试JavaScript代码的行为驱动开发框架。 它不依赖于任何其他的JavaScript框架。 它不需要DOM。
如果您有此测试运行者的经验,请提供更多信息:)
项目主页:http://jasmine.github.io/
QUnit
QUnit专注于在浏览器中测试JavaScript,同时为开发人员提供尽可能多的便利。 来自网站的Blurb:
QUnit是一个功能强大,易于使用的JavaScript单元测试套件。 它由jQuery,jQuery UI和jQuery Mobile项目使用,并且能够测试任何通用JavaScript代码
QUnit与TestSwarm(以上)共享一些历史记录:
QUnit最初是由John Resig开发的,作为jQuery的一部分。 2008年,它有自己的家庭,名称和API文档,允许其他人也将其用于单元测试。 当时它仍然依赖于jQuery。 2009年的重写表明,现在QUnit完全独立运行。 QUnit的断言方法遵循CommonJS单元测试规范,这在一定程度上受QUnit的影响。
项目主页:http://qunitjs.com/
兴农
Test-Driven JavaScript Development的作者Christian Johansen是另一个伟大的工具,sinon.js。 最好由他自己描述:
用于JavaScript的独立测试间谍,存根和模拟。 任何单元测试框架都没有依赖关系。
实习生
Intern网站提供了与此列表上其他测试框架的直接功能比较。 它比任何其他基于JavaScript的测试系统提供更多功能。
查看Dojo对象线程(DOH)单元测试框架,该框架对于JavaScript单元测试来说非常独立于框架,并且没有任何Dojo依赖关系。 在使用Dojo Objective Harness进行单元测试的Web 2.0应用程序中有很好的描述。
如果你想自动执行UI测试(许多开发人员感到痛苦) - 请检查doh.robot(临时下载。update:其他链接http://dojotoolkit.org/reference-guide/util/dohrobot.html)和dijit .robotx(临时下降)。 后者是为验收测试而设计的。 更新:
参考文章解释了如何使用它们,如何模拟用户使用鼠标和/或键盘与UI进行交互,以及如何记录测试会话,以便以后可以自动“播放”它。
Chutzpah - JavaScript测试亚军
我创建了一个名为Chutzpah的开源项目,它是JavaScript单元测试的测试运行者。 Chutzpah使您能够从命令行和Visual Studio内部运行JavaScript单元测试。 它还支持在TeamCity持续集成服务器中运行。
链接地址: http://www.djcxy.com/p/21405.html