首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

精通 MEAN 测试 MEAN 堆栈(3)

精通 MEAN 测试 MEAN 堆栈(3)

Karma 简介Karma 是我知道的惟一一个受一篇   支持的测试运行器。Karma 背后的思想的一种更简洁的版本描述是一段对项目的任务陈述:
思想应该很简单。我们信任测试,所以我们希望让它尽可能简单。
仅此而已。Karma 允许您在您选定的框架中编写测试。无论您更喜欢 QUnit 的测试驱动开发 (TDD) 风格还是 Jasmine 的行为驱动开发                (BDD) 风格,Karma 都能正常运行采用任何风格编写的测试。(如果您更喜欢使用单个测试框架来编写服务器端和客户端测试,Karma 还为                Mocha 提供了一流的支持。)
经验丰富的 Web 开发人员知道跨各种不同的浏览器测试他们的应用程序有多重要。核心 JavaScript 语言在各种浏览器中惊人地一致,但文档对象模型                (DOM) 操作和发出 Ajax 请求的方式远远没有标准化。jQuery 和 AngularJS                等主流库出色地克服了浏览器不兼容性,但这不应该让您错误地感到自鸣得意。一次测试胜过一千条意见,有证据证明您的应用程序在特定浏览器中按预期运行,远胜于简单地假设它将按预期运行。
Karma                提供了多个插件,您可以使用它们按需启动一个真实的浏览器,运行完整的测试套件,然后在完成后关闭浏览器。该功能对在您选择的浏览器本地运行测试很方便,但如果测试由一个无头                (headless) 持续集成服务器(比如 Jenkins、Hudson 或 Strider)启动,您的选择可能会很受限制。
幸运的是,您可以启动一个长期运行的 Karma 服务器并捕获 远程设备上的浏览器。捕获一个浏览器很简单,只需在浏览器中访问您的                Karma 服务器的 URL。如果浏览器支持 Web 套接字(                 表明支持每个主流的现代浏览器),Karma 服务器将与该设备保持一个长期运行的、持久的连接。随着新测试添加到套件中,Karma                服务器将通过线路将它们一次传输到远程浏览器,运行它们,然后返回结果。
但是,如果您不能量化结果,运行测试套件有什么用?Karma                提供了针对一些不同报告程序的插件。报告程序可以简单到为每个通过的测试在命令行上打印一个点。或者报告程序可生成完全格式化的                HTML,或者发布可转换为您选择的输出的原始的 JUnit 兼容 XML。
测试框架、浏览器启动器和结果报告程序都是在 karma.conf.js 文件中定义的。
返回列表