Mar*_*son 717 javascript tdd unit-testing
我已经研究并考虑了许多JavaScript单元测试和测试工具,但一直无法找到合适的选项来保持完全符合TDD标准.那么,是否有一个完全符合TDD标准的JavaScript单元测试工具?
gre*_*ers 1501
Karma是一个使用Node.js构建的JavaScript测试运行器,用于单元测试.
Protractor用于端到端测试,并使用Selenium Web Driver来测试.
两者都是由Angular团队制作的.您可以使用任何所需的断言库.
截屏:Karma入门
相关:
优点:
缺点:
我完全没有资格评论mocha.js的功能,优点和缺点,但它只是我信任JS社区的人推荐给我的.
其网站报告的功能列表:

这不再存在,而是重定向到sequential.js
Yolpo是一个可视化javascript执行的工具.我们鼓励Javascript API开发人员编写用例来展示和告知他们的API.这些用例构成了回归测试的基础.
内置支持ES2015的未来测试跑步者.尽管JavaScript是单线程的,但由于其异步特性,Node.js中的IO可以并行发生.AVA利用这一点并同时运行您的测试,这对IO重测试尤其有用.此外,测试文件作为单独的进程并行运行,为每个测试文件提供更好的性能和隔离的环境.
使用Node.js构建的JavaScript测试运行器.非常模块化和灵活.它带有自己的断言库,但如果您愿意,可以添加自己的断言库.该断言库解耦,所以你也可以与其他测试跑步者使用它.而不是使用assert(!...)或expect(...).not...,它使用refute(...)这是一个很好的扭曲imho.
浏览器JavaScript测试工具包.它使用浏览器自动化进行浏览器测试(想想JsTestDriver),QUnit样式静态HTML页面测试,无头浏览器测试(PhantomJS,jsdom,...)等等.看一下概述吧!
Node.js测试工具包.您将获得相同的测试用例库,断言库等.这对于混合浏览器和Node.js代码也很有用.使用Buster.JS编写测试用例,并在Node.js和真实浏览器中运行它.
截屏视频:Buster.js入门(2:45)
优点:
缺点:
*TestSwarm也是一个持续集成服务器,而您需要为Buster.js提供单独的CI服务器.但是,它会输出xUnit XML报告,因此应该很容易与Hudson,Bamboo或其他CI服务器集成.
https://github.com/jquery/testswarm
正如GitHub网页上所述,TestSwarm正式不再正在积极开发中.他们推荐Karma,browserstack-runner或Intern.
这是一个行为驱动的框架(如下面的引文所述),可能会使熟悉Ruby或Ruby on Rails的开发人员感兴趣.语法基于RSpec,用于在Rails项目中进行测试.
Jasmine规范可以从html页面(以qUnit方式)或从测试运行器(作为Karma)运行.
Jasmine是一个用于测试JavaScript代码的行为驱动开发框架.它不依赖于任何其他JavaScript框架.它不需要DOM.
如果您有使用此测试框架的经验,请提供更多信息:)
项目主页:http://jasmine.github.io/
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/
另一个很棒的工具是由测试驱动的JavaScript开发的作者Christian Johansen创作的sinon.js.最好由他自己描述:
用于JavaScript的独立测试间谍,存根和模拟.没有依赖项适用于任何单元测试框架.
该实习生的网站提供了一个直接的功能比较这个名单上的其他测试框架.它提供了比任何其他基于JavaScript的测试系统更多的开箱即用功能.
一个新的但非常强大的测试框架.它允许基于快照的测试,这样可以提高测试速度并在测试方面创造新的动态
查看他们的一个演讲:https://www.youtube.com/watch?v = cAKYQpTC7MA
更好的是:入门
Eug*_*kin 63
看一下Dojo Object Harness(DOH)单元测试框架,它是JavaScript单元测试的几乎独立于框架的工具,并且没有任何Dojo依赖项.使用Dojo Objective Harness对单元测试Web 2.0应用程序进行了很好的描述.
如果你想自动化UI测试(许多开发人员的痛处) - 查看doh.robot (临时下来.更新:其他链接http://dojotoolkit.org/reference-guide/util/dohrobot.html)和dijit .robotx (临时下来).后者专为验收测试而设计.更新:
参考文章解释了如何使用它们,如何模拟用户使用鼠标和/或键盘与UI交互,以及如何记录测试会话,以便您可以在以后自动"播放"它.
Mat*_*ela 34
我创建了一个名为Chutzpah的开源项目,它是JavaScript单元测试的测试运行器.Chutzpah使您可以从命令行和Visual Studio内部运行JavaScript单元测试.它还支持在TeamCity持续集成服务器中运行.
kol*_*len 10
Google发布的JavaScript测试框架:https: //github.com/google/gjstest
- 无需运行浏览器即可快速测试启动和执行时间.
- 在通过测试和失败测试的情况下,清晰,可读的输出.
- 一个基于浏览器的测试运行时JS改变,可以简单地被刷新.
- 风格和语义类似于Google Test for C++.
- 内置的模拟框架,需要基于Google C++ Mocking Framework的最小样板代码(例如,no
$tearDown或$verifyAll),具有样式和语义.
目前没有适用于Windows的二进制文件
你有"在实际浏览器上运行"作为专业人士,但根据我的经验,这是一个骗局,因为它很慢.但是有价值的是缺乏足够的JS仿真来自非浏览器的替代品.可能是因为如果你的JS足够复杂,只有浏览器测试就足够了,但还有更多的选择需要考虑:
HtmlUnit:"它具有相当好的JavaScript支持(不断改进),即使使用非常复杂的AJAX库也可以工作,根据您要使用的配置模拟Firefox或Internet Explorer." 如果它的仿真足以满足您的使用需求,那么它将比驱动浏览器快得多.
但也许HtmlUnit有足够的JS支持,但你不喜欢Java?那么也许:
Celerity:在HubUnit支持的JRuby上运行的Watir API.
或类似的
Schnell:HtmlUnit的另一个JRuby包装器.
当然,如果HtmlUnit不够好而你必须驾驶浏览器,那么你可能会考虑使用Watir来驱动你的JS.
| 归档时间: |
|
| 查看次数: |
530537 次 |
| 最近记录: |