Karma http://karma-runner.github.io or 量角器 http://angular.github.io/protractor/#/
Karma 是一个使用 Node.js 构建的 JavaScript 测试运行器,用于单元测试。
Protractor 用于端到端测试,并使用 Selenium Web Driver 来驱动测试。
两者都是由 Angular 团队制作的。您可以使用任何您想要的断言库。
截屏视频:业力入门 http://www.youtube.com/watch?v=MVw8N3hTfCI
related:
- 我应该使用 Protractor 还是 Karma 进行端到端测试? https://stackoverflow.com/questions/21732379/should-i-be-using-protractor-or-karma-for-my-end-to-end-testing/21733114#21733114
- Protractor 和 Karma 可以一起使用吗? https://stackoverflow.com/questions/17070522/can-protractor-and-karma-be-used-together
pros:
- 使用Node.js,因此兼容Win/OS X/Linux
- 从浏览器运行测试或使用 PhantomJS 无头运行测试
- 一次在多个客户端上运行
- 启动、捕获和自动关闭浏览器的选项
- 可以选择在开发计算机上或单独运行服务器/客户端
- 从命令行运行测试(可以集成到 ant/maven 中)
- 编写 xUnit 或 BDD 风格的测试
- 支持多种JavaScript测试框架
- 保存时自动运行测试
- 代理请求跨域
- Possible to customize:
- 扩展它以包装其他测试框架(Jasmine、Mocha、QUnit 内置)
- 你自己的断言/反驳
- 记者
- 浏览器启动器
- WebStorm 插件
- 由 NetBeans IDE 支持
Cons:
- Does 不支持 Node.js(即后端) https://stackoverflow.com/a/16660909/1175496 testing
- Eclipse 还没有插件
- 没有之前测试结果的历史记录
mocha.js http://mochajs.org
我完全没有资格评论 mocha.js 的特性、优点和缺点,
但这只是 JS 社区中我信任的人向我推荐的。
据其网站报道,功能列表:
- 浏览器支持
- 简单的异步支持,包括承诺
- 测试覆盖率报告
- 字符串差异支持
- JavaScript # 用于运行测试的 API
- CI 支持等的正确退出状态
- 自动检测并禁用非 ttys 的着色
- 将未捕获的异常映射到正确的测试用例
- 异步测试超时支持
- 特定于测试的超时
- 咆哮通知支持
- 报告测试持续时间
- 突出显示缓慢的测试
- 文件观察器支持
- 全局变量泄漏检测
- 可选择运行与正则表达式匹配的测试
- 自动退出以防止活动循环“挂起”
- 轻松元生成套件和测试用例
- mocha.opts 文件支持
- 可点击的套件标题来过滤测试执行
- 节点调试器支持
- 检测对done()的多次调用
- 使用任何你想要的断言库
- 可扩展的报告,捆绑 9 个以上报告者
- 可扩展的测试 DSL 或“接口”
- 在每个钩子之前、之后、每个钩子之前、每个钩子之后
- 任意转译器支持(咖啡脚本等)
- TextMate 捆绑包
yolpo http://www.yolpo.com
该内容已不存在,重定向至顺序.js https://sequential.js.org instead
Yolpo 是一个可视化 JavaScript 执行的工具。我们鼓励 JavaScript API 开发人员编写他们的用例来展示和讲述他们的 API。这些用例构成了回归测试的基础。
AVA https://github.com/sindresorhus/ava
未来派测试运行程序,内置对 ES2015 的支持。尽管 JavaScript 是单线程的,但 Node.js 中的 I/O 由于其异步特性可以并行发生。 AVA 利用这一点并同时运行测试,这对于 I/O 密集型测试特别有利。此外,测试文件作为单独的进程并行运行,为您提供更好的性能和每个测试文件的隔离环境。
- 最小且快速
- 简单的测试语法
- 同时运行测试
- 强制编写原子测试
- 没有隐式全局变量
- 每个测试文件的隔离环境
- 在 ES2015 中编写测试
- 承诺支持
- 生成器功能支持
- 异步函数支持
- 可观察到的支持
- 增强断言
- 可选 TAP 输出
- 清理堆栈痕迹
巴斯特.js http://busterjs.org/
使用 Node.js 构建的 JavaScript 测试运行器。非常模块化且灵活。它带有自己的断言库,但如果您愿意,您可以添加自己的断言库。这断言库 http://docs.busterjs.org/en/latest/modules/referee/是解耦的,因此您也可以将它与其他测试运行程序一起使用。而不是使用assert(!...)
or expect(...).not...
, 它用refute(...)
恕我直言,这是一个很好的转折。
浏览器 JavaScript 测试工具包。它使用浏览器自动化进行浏览器测试(想想 JsTestDriver)、QUnit 风格的静态 HTML 页面测试、无头浏览器测试(PhantomJS、jsdom,...)等等。看一眼概述 http://docs.busterjs.org/en/latest/overview/!
Node.js 测试工具包。您可以获得相同的测试用例库、断言库等。这对于混合浏览器和 Node.js 代码也非常有用。编写您的测试用例Buster.JS
并在 Node.js 和真实浏览器中运行它。
截屏视频:Buster.js 入门 http://www.youtube.com/watch?v=VSFGAl1BekY (2:45)
pros:
- 使用Node.js,因此兼容Win/OS X/Linux
- 从浏览器或无头使用 PhantomJS 运行测试(很快)
- 一次在多个客户端上运行
- 支持 Node.js 测试
- 不需要在开发计算机上运行服务器/客户端(不需要 IE)
- 从命令行运行测试(可以集成到 ant/maven 中)
- 编写 xUnit 或 BDD 风格的测试
- 支持多种JavaScript测试框架
- 推迟测试而不是注释掉它们
- 内置SinonJS
- 保存时自动运行测试 http://www.youtube.com/watch?v=gKVej9SAzH4
- 代理请求跨域
- Possible to customize:
- 扩展它以包装其他测试框架(内置 JsTestDriver)
- 你自己的断言/反驳
- 记者(xUnit XML、传统点、规范、tap、TeamCity 等内置)
- 自定义/替换用于运行浏览器测试的 HTML
- TextMate 和 Emacs 集成
Cons:
- 仍处于测试阶段,因此可能存在错误
- 还没有 Eclipse/IntelliJ 插件
- 不像 TestSwarm * 那样按操作系统/浏览器/版本对结果进行分组。但是,它确实会在测试结果中打印出浏览器名称和版本。
- 没有像 TestSwarm 这样的先前测试结果的历史记录 *
- 不能完全在 Windows 上运行截至 2014 年 5 月 http://docs.busterjs.org/en/latest/developers/windows/
* TestSwarm也是一个持续集成服务器,而您需要一个单独的CI服务器Buster.js
。但是,它确实输出 xUnit XML 报告,因此应该很容易与Hudson http://hudson-ci.org/, Bamboo http://www.atlassian.com/software/bamboo/overview或其他 CI 服务器。
测试群 https://github.com/jquery/testswarm/
https://github.com/jquery/testswarm https://github.com/jquery/testswarm
正如其 GitHub 网页上所述,TestSwarm 正式不再处于积极开发状态。他们推荐 Karma、browserstack-runner 或 Intern。
Jasmine https://github.com/pivotal/jasmine/
这是一个行为驱动的框架(如下面的引用所述),熟悉 Ruby 或 Ruby on Rails 的开发人员可能会感兴趣。语法基于RSpec http://rspec.info/用于 Rails 项目中的测试。
Jasmine 规范可以从 HTML 页面(以 qUnit 方式)或从测试运行程序(如 Karma)运行。
Jasmine 是一个行为驱动的开发框架,用于测试 JavaScript 代码。它不依赖于任何其他 JavaScript 框架。它不需要 DOM。
如果您有此测试框架的经验,请贡献更多信息:)
项目主页:http://jasmine.github.io/ https://github.com/pivotal/jasmine/
QUnit http://qunitjs.com/
QUnit 专注于在浏览器中测试 JavaScript,同时为开发人员提供尽可能多的便利。来自网站的简介:
QUnit 是一个功能强大、易于使用的 JavaScript 单元测试套件。它由 jQuery、jQuery UI 和 jQuery Mobile 项目使用,并且能够测试任何通用 JavaScript 代码
QUnit 与 TestSwarm 分享了一些历史(上图):
QUnit 最初由 John Resig 作为 jQuery 的一部分开发。 2008 年,它有了自己的主页、名称和 API 文档,允许其他人也使用它进行单元测试。当时它仍然依赖于 jQuery。 2009 年的重写修复了这个问题,现在 QUnit 完全独立运行。
QUnit 的断言方法遵循 CommonJS 单元测试规范,该规范在某种程度上受到 QUnit 的影响。
项目主页:http://quunitjs.com/ http://qunitjs.com/
Sinon http://sinonjs.org
另一个很棒的工具是sinon.js http://sinonjs.org作者:克里斯蒂安·约翰森,作者测试驱动的 JavaScript 开发 http://tddjs.com/。最贴切的描述是他自己:
独立测试间谍、存根和模拟
对于 JavaScript。没有依赖项有效
与任何单元测试框架。
Intern http://theintern.io
The 实习生网站 http://theintern.io/#compare提供与此列表中其他测试框架的直接功能比较。与任何其他基于 JavaScript 的测试系统相比,它提供了更多开箱即用的功能。
JEST https://jestjs.io/
一个新的但非常强大的测试框架。它还允许基于快照的测试,这提高了测试速度并在测试方面创造了新的动态
看看他们的一场演讲:https://www.youtube.com/watch?v=cAKYQpTC7MA https://www.youtube.com/watch?v=cAKYQpTC7MA
更好的是:入门 https://jestjs.io/docs/en/getting-started.html