用于TDD的JavaScript单元测试工具
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用于TDD的JavaScript单元测试工具,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5966字,纯文字阅读大概需要9分钟。
内容图文
![用于TDD的JavaScript单元测试工具](/upload/InfoBanner/zyjiaocheng/717/a51c8913fb5b4e679e21d796dcc12256.jpg)
我已经研究并考虑了许多JavaScript单元测试和测试工具,但一直无法找到合适的选项来保持完全符合TDD标准.那么,是否有一个完全符合TDD标准的JavaScript单元测试工具?
解决方法:
Karma是一个用Node.js构建的JavaScript测试运行器,用于单元测试.
Protractor用于端到端测试,并使用Selenium Web Driver来测试.
两者都是由Angular团队制作的.您可以使用任何所需的断言库.
有关:
> 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的插件(还)
>没有先前测试结果的历史记录
我完全没有资格评论mocha.js的功能,优点和缺点,
但它只是我信任JS社区的人推荐给我的.
其网站报告的功能列表:
>浏览器支持
>简单的异步支持,包括承诺
>测试覆盖率报告
>字符串差异支持
> javascript #API用于运行测试
> CI支持的正确退出状态等
>自动检测并禁用非ttys的着色
>将未捕获的异常映射到正确的测试用例
>异步测试超时支持
>特定于测试的超时
>咆哮通知支持
>报告测试持续时间
>突出显示慢速测试
>文件观察者支持
>全局变量泄漏检测
>可选择运行与正则表达式匹配的测试
>自动退出以防止“挂起”活动循环
>轻松元生成套件&测试用例
> mocha.opts文件支持
>可点击的套件标题,用于过滤测试执行
>节点调试器支持
>检测到多次调用done()
>使用您想要的任何断言库
>可扩展的报告,与9名记者捆绑在一起
>可扩展测试DSL或“接口”
>每个钩子之前,之后,之前,之后
>任意转发器支持(咖啡脚本等)
> TextMate包
This no longer exists, redirects to 07008 instead
Yolpo是一个可视化javascript执行的工具.我们鼓励Javascript API开发人员编写用例来展示和告知他们的API.这些用例构成了回归测试的基础.
内置支持ES2015的未来测试跑步者.尽管JavaScript是单线程的,但由于其异步特性,Node.js中的IO可以并行发生. AVA利用这一点并同时运行您的测试,这对IO重测试尤其有用.此外,测试文件作为单独的进程并行运行,为每个测试文件提供更好的性能和隔离的环境.
>最小和快速
>简单的测试语法
>同时运行测试
>强制编写原子测试
>没有隐式全局变量
>每个测试文件的隔离环境
>在ES2015中编写测试
>承诺支持
>发电机功能支持
>异步功能支持
>可观察的支持
>增强断言
>可选的TAP o
本安输出
>清理堆栈跟踪
使用Node.js构建的JavaScript测试运行器.非常模块化和灵活.它带有自己的断言库,但如果您愿意,可以添加自己的断言库. assertions library是分离的,因此您也可以将其与其他测试跑步者一起使用.而不是使用断言(!…)或期望(…).而不是…,它使用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 070013!
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)
>你自己的断言/反驳
>记者(xUnit XML,传统点,规范,点击,TeamCity和更多内置)
>自定义/替换用于运行浏览器测试的HTML
> TextMate和Emacs集成
缺点:
> Stil in beta所以可能是越野车
> Eclipse / IntelliJ没有插件(尚未)
>不按照TestSwarm *等os / browser / version对结果进行分组.但是,它会在测试结果中打印出浏览器名称和版本.
>没有像TestSwarm *之前的测试结果的历史
>不完全适用于Windows as of May 2014
* 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 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专注于在浏览器中测试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.js,由Test-Driven JavaScript Development的作者Christian Johansen撰写.最好由他自己描述:
Standalone test spies, stubs and mocks
for JavaScript. No dependencies works
with any unit testing framework.
Intern Web site提供了与此列表中其他测试框架的直接功能比较.它提供了比任何其他基于JavaScript的测试系统更多的开箱即用功能.
一个新的但非常强大的测试框架.它允许基于快照的测试,这样可以提高测试速度并在测试方面创造新的动态
看看他们的一次谈话:https://www.youtube.com/watch?v=cAKYQpTC7MA
更好的是:Getting Started
内容总结
以上是互联网集市为您收集整理的用于TDD的JavaScript单元测试工具全部内容,希望文章能够帮你解决用于TDD的JavaScript单元测试工具所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。