本文先介绍karma-jasmine的安装。

Karma介绍

  首先说一下karma,官方是这样给出的,karma不是一个测试框架,也不是一个断言库。karma只是启动一个HTTP服务器,并生成HTML文件。所以你可以选择你自己喜欢的测试框架。如Jasmine,Mocha,QUnit等等。

Jasmine介绍

  Jasmine即是上面所说的JavaScript测试框架。它不依赖于其他任何JavaScript组件,它有干净的语法,Jasmine断言库可以让你简单的写出测试代码,(断言:表示为一些布尔表达式,你可以采用假设的方式,当程序输出的结果是否与假设的结果一致时,断言为真,否则,断言为假)在karma上运行Jasmine可以完成JavaScript的自动化测试、生成覆盖率报告等。

Karma安装

  安装Node.js

  karma是运行在node.js上的。所以首先安装node.js.参考地址:http://pan.baidu.com/s/1jHrCh74#list/path=%2F下载一路next即可(温馨提示:最好改一下安装路径)

  安装karma

  点击桌面左下角开始菜单,找到Node.js中的第一项,如下图:

                                            

将karma安装到自己喜欢的位置。我安装到了E:\tomjia-soft\karma下(关于windows下的文件目录跳转用cd)

      

  安装karma,输入命令:npm install karma --save-dev

      

  ok,karma已经安装成功了。

  ③安装插件  

  接下来安装karma-jasmine、karma-chrome-launcher(chrome浏览器启动器)插件。

  npm install karma-jasmine karma-chrome-launcher --save-dev

      

  ok,插件已经安装成功。

  ④安装karma-cli

  karma-cli用来简化karma的调用,方便使用karma

输入命令:npm install -g karma-cli

      

  安装已经全部完成了。安装完成后的目录如下:

      

Karma使用

  启动karma,输入命令:karma start

      

      自动弹出chrome浏览器窗口

      

      返回命令窗口时会报错,因为还没有配置文件。这时先不用管,直接关掉命令窗口即可。同时浏览器也随之关闭。

      重新跳转到karma目录下,如下图:并执行  karma init  命令。

      

      上图说明:①你选择哪一个测试框架:我们选择jasmine

           ②你想要使用Require.js吗?:(RequireJS是一个非常小巧的JavaScript模块载入框架)这里我们不需要。

           ③你想让那个浏览器自动捕获:这里可以可以选择多个,我们只用chrome。

           ......

           ⑥你希望karma一直监控所有的文件并且不停地测试吗?:我们需要自动化测试,所以我们选择yes。

      配置文件已搞定。如下图:

      

      打开配置文件:我们需要注意两个地方:

      

  12都是设置路径的。1中的bathPath:可以设置(设置为相对于配置文件karma.conf的路径),也可以不设置。如果不设置的话。中的files中的路径就是相对于配置文件karma.conf的路径。下文将有体现。如果bathPath设置了,中的files中的路径就是相对于1中的路径而言。

  我们新建一个文件夹命名为TestFiles。放在配置文件的上一级。TestFiles下有两个js文件。分别是测试文件jasmineTest.js和被测试文件test.js.如下图所示:

      

      接下来我们不设置配置文件中的,直接设置路径(当然你也可以设置,再设置)。如图所示:

      

    files: [
'../TestFiles/jasmineTest.js',
'../TestFiles/test.js'
],

  test.js文件内容:     

function TT() {
return "abc";
}

  jasmineTest文件内容:

describe("A suite of basic functions", function () {
it("test", function () {
expect("abc").toEqual(TT());
});
});

  再次启动karma:结果如下:

      

      

  点击debug:F12调试

      

  改变test.js内容,如下图:

function TT() {
return "abc123";
}

  保存,打开命令窗口:观察可得:

      

    打开浏览器,刷新!刷新!,点击debug F12调试观察可得:

      

      这就体现了karma通过浏览器自动测试的功能。

  

  

Karma-Jasmine之安装与实例详解(一)的更多相关文章

  1. linux基础-磁盘阵列(RAID)实例详解

    磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 R ...

  2. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  3. Cocos2d-x 3.X手游开发实例详解

    Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰 ...

  4. Linux下rz命令使用的实例详解

    Linux中rz命令和sz命令都可用于文件传输,而rz命令主要用于文件的上传,下面将通过几个实例来给大家详细介绍下Linux下rz命令的用法,一起来学习下吧. rz命令可以批量上传文件,当然也可上传单 ...

  5. 转:【工欲善其事必先利其器】—Entity Framework实例详解

    开始本篇文章之前,先说一下Entity Framework 6 Alpha1在NuGet中已可用,原文链接http://blogs.msdn.com/b/adonet/archive/2012/10/ ...

  6. Linux计划任务Crontab实例详解教程

    说明:Crontab是Linux系统中在固定时间执行某一个程序的工具,类似于Windows系统中的任务计划程序 下面通过详细实例来说明在Linux系统中如何使用Crontab 操作系统:CentOS ...

  7. 转载 《AngularJS》5个实例详解Directive(指令)机制

    <AngularJS>5个实例详解Directive(指令)机制 大漠穷秋 本文整理并扩展了<AngularJS>这本书第六章里面的内容,此书近期即将由电子工业出版社出版,敬请 ...

  8. 免费的HTML5连载来了《HTML5网页开发实例详解》连载(五)图解通过Fiddler加速开发

    Fiddler是Windows底下最强大的请求代理调试工具,监控任何浏览器的HTTP/HTTPS流量,窜改客户端请求和服务器响应,解密HTTPS Web会话,图4.44为Fiddler原理示意图. 图 ...

  9. Oracle12c Release1 安装图解(详解)

    Oracle12c Release1 安装图解(详解) Oracle12c 终于发布了,代号为 c,即为 Cloud(云),替代了网格 (Grid)运算. 我的机器基础环境:Windows8(x64) ...

随机推荐

  1. Delphi接口

    program Demo1; { Create Date: 2014-06-29 Author: P.S.M 1.接口Demo1 } {$APPTYPE CONSOLE} uses SysUtils; ...

  2. ios8.1.2耗电情况严重的解决方法

    打开cydia,搜索ifile(威锋源,版本2.1.0-1).打开ifile,进入路径/Applications.里面有许多程序文件,选择适当的进行禁用(ifile可以禁用程序的活动而不完全删除它,这 ...

  3. Python的面向对象3

    接下来,我们接着讲Python的面向对象,在上一次的博客中,我们详细介绍了类与对象的属性,今天,我们来详细介绍一下面向对象中的方法! 1.定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外 ...

  4. Asp.net MVC2中你必须知道的扩展点(一):Controller Factory

    Asp.net mvc2中提供很多可以扩展的地方,利用这些扩展之后,asp.net mvc使用起来更加灵活.Simone Chiaretta曾写过一篇文章:13 ASP.NET MVC extensi ...

  5. UIImage拉伸显示

    下面张图片,是设计来做按钮背景的:  button.png,尺寸为:24x60 现在我们把它用作为按钮背景,按钮尺寸是150x50,以下是没有经过技术性拉伸处理的情况: // 得到view的尺寸   ...

  6. jquery经验1

    1.Javascript刷新页面的几种方法: location.reload()// 真刷新 location=location location.assign(location) document. ...

  7. QT5.4 计算器程序 打包&发布,解决dll的最新解决方案

    QT写界面还是很不错,就是打包会比较麻烦,折腾了一天总算是打包完成了. QT软件的打包发布一个难点是必备dll文件的识别,现在高版本QT自带了一个windeployqt工具,直接会把需要的dll生成一 ...

  8. JavaScript 排序算法——快速排序

    常见排序 javaScript 实现的常见排序算法有:冒泡排序.选择排序.插入排序.谢尔排序.快速排序(递归).快速排序(堆栈).归并排序.堆排序. 过程 "快速排序"的思想很简单 ...

  9. XE5 开发android平台搭建

    转载自:http://www.cnblogs.com/hezihang/p/3319980.html Delphi XE5的Android开发平台搭建   Delphi XE5支持Android AR ...

  10. Python join()方法

    描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法: str.join(sequence) 参数 sequence -- 要连接的 ...