引用文:karma、jasmine做angularjs单元测试

karma和jasmine介绍

<1>技术介绍

karma

karma是Testacular的新名字

karma是用来自动化分析统计单元测试的

jasmine

jasmine是做js单元测试的

karma-coverage

<2>插件安装

1. node.js

2. 安装karma

npm install -g karma

npm install -g karma-cli (简化karma调用的插件)

3. 安装jasmine

npm install -g jasmine

安装完成后出现两个文件 jasmine/jasmine-core

4. 安装karma-coverage

npm install -g karma-coverage (测试代码覆盖率的插件) ( 安装这个插件先需安装Istanbul,不知道为什么,反正安装了Istanbul,就可以安装了 )

<3>开始第一个项目

1. 项目的目录结构:

2. add.js文件

function add(a,b){
return a + b;
}

3. add-test.js

describe("my great and huge math lib",function(){
it("should perfectly complete complex addition",function(){
var result = add(3,5);
expect(result).toEqual(8);
})
})

4. conf 文件

在karma-my-proc目录下

karma init pro-conf.js

5. 启动程序

karma start pro-conf.js

根据提示,选择js目录、chrome、jasmine等

6. 也可以编辑conf.js 文件

  1. .files
// list of files / patterns to load in the browser
files: [
'js/**/*.js',
'test/**/*.js'
],
  1. .coverage
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress','coverage'],
preprocessors : {'js/**/*.js': 'coverage'},
coverageReporter: {
type : 'html',
dir : 'coverage/'
},

<4>运行结果

<5>插件解释--karma-coverage

引用文Karma: 3 - 测试覆盖率

karma 的插件 karma-coverage 提供了测试代码覆盖率的支持。

karma 的页面:http://karma-runner.github.io/0.8/config/coverage.html 进行了说明。karma 使用 Istanbul.实现覆盖率统计。

首先你需要安装这个 Karma 插件,然后需要在配置文件的三个地方进行配置。

疑难问题

组件

plugins: [
'karma-coverage',
'karma-jasmine',
'karma-chrome-launcher',
'karma-firefox-launcher'
]

错误

/usr/local/lib/node_modules/karma/node_modules/di/lib/injector.js:9
throw error('No provider for "' + name + '"!');
^ Error: No provider for "framework:jasmine"! (Resolving: framework:jasmine)
at error (/usr/local/lib/node_modules/karma/node_modules/di/lib/injector.js:22:12)
at Object.parent.get (/usr/local/lib/node_modules/karma/node_modules/di/lib/injector.js:9:13)
at get (/usr/local/lib/node_modules/karma/node_modules/di/lib/injector.js:54:19)
at /usr/local/lib/node_modules/karma/lib/server.js:138:20
at Array.forEach (native)
at Server._start (/usr/local/lib/node_modules/karma/lib/server.js:137:21)
at invoke (/usr/local/lib/node_modules/karma/node_modules/di/lib/injector.js:75:15)
at Server.start (/usr/local/lib/node_modules/karma/lib/server.js:102:18)
at Object.exports.run (/usr/local/lib/node_modules/karma/lib/cli.js:243:26)
at Object.<anonymous> (/usr/local/lib/node_modules/karma/bin/karma:3:23)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:134:18)

karma、jasmine做angularjs单元测试的更多相关文章

  1. 在WebStorm中集成Karma+jasmine进行前端单元测试

    在WebStorm中集成Karma+jasmine进行前端单元测试 前言 好久没有写博了,主要还是太懒=.=,有点时间都去带娃.看书了,今天给大家分享一个原创的小东西,如果大家对TDD或者BDD有兴趣 ...

  2. 搭建Karma+Jasmine的自动化单元测试

    最近在打算将以前的代码进行重构,过程中发现自己不写自动化测试代码,而是手动的写,这样并不好,所以就学了Karma+Jasmine的自动化单元测试,以后写代码尽量要写自动化单元测试,也要测一下istan ...

  3. 使用karma+jasmine做单元测试

    目的 使用karma和jasmine来配置自动化的js单元测试. Karma和Jasmine Karma是由Angular团队所开发的一种自动化测试工具.链接:http://karma-runner. ...

  4. 基于karma和jasmine的Angularjs 单元测试

    Angularjs 基于karma和jasmine的单元测试 目录: 1. 单元测试的配置 2. 实例文件目录解释 3. 测试controller     3.1 测试controller中变量值是否 ...

  5. Karma+Jasmine实现自动化单元测试

    1.Karma介绍 Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma.Karma是一个让人感到非常神秘的名字 ...

  6. angularjs, nodejs, express, gulp, karma, jasmine 前端方案整合

    今年转向做前端开发,主要是做angularjs开发,期间接触了nodejs平台,从此一发不可收拾. npm丰富的插件库,express 开发框架, grunt, gulp构建工具,karma测试管理工 ...

  7. angularJS测试一 Karma Jasmine Mock

    AngularJS测试 一 测试工具 1.NodeJS领域:Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm ...

  8. Karma +Jasmine+ require JS进行单元测试并生成测试报告、代码覆盖率报告

    1. 关于Karma Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner). 该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuou ...

  9. 学习Karma+Jasmine+istanbul+webpack自动化单元测试

    学习Karma+Jasmine+istanbul+webpack自动化单元测试 1-1. 什么是karma?  Karma 是一个基于Node.js的Javascript测试执行过程管理工具.该工具可 ...

随机推荐

  1. 【HAOI2011】向量

    [题目描述] 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个 ...

  2. 解析一下rtmp协议比较难懂的地方

    官方文档写的过于复杂,这里弄个简单的好入门的.chunk 分基础头,消息头,时间戳,数据部分基础头中第一个字节最高位的两个位是用来设置消息头的四种格式的,和基础头没关系,整个基础头有3个字段的长度存储 ...

  3. Java简介(1)

    起源 略. 组成 Java由四方面组成: 1.Java编程语言 2.Java文件格式 3.Java虚拟机(JVM) 4.Java应用程序接口(Java api) 体系 JavaSE , JavaEE, ...

  4. webAPP前端必备知识

    了解各浏览器内核 Firefox:-moz-box-shadow Safari:-webkit-box-shadow Opera:-o-box-shadow IE:-ms-box-shadow Web ...

  5. HTML语义化标签(二)

    为了保证网页去样式后的可读性,并且又符合web标准,应该注意一下几点: 1  尽可能少的使用无语义的标签div和span: 2  在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况 ...

  6. 面向对象设计模式之Facade外观模式(结构型)

    动机:有些系统组件的客户和组件中各种复杂的子系统有了过多的的耦合,随着外部客户程序  和个子系统的演化,这种过多的耦合面临很多变化的挑战:如何简化外部客户程序和系统的交互接口?  如何将外部客户程序的 ...

  7. 在jQuery.getData中renderCallback使用不同创建方式的结果

    JavaScript 中需要创建函数的话,有两种方法:函数声明.函数表达式,各自写法如下:// 方法一:函数声明function foo() {}// 方法二:函数表达式var foo = funct ...

  8. $_CFG = load_config(); /* 载入系统参数 */

    ecshop 中$_CFG数组主要是放置一些系统参数,并且全站共享的数据,在使用的时候,ecshop里面常常以$GLOBALS['_CFG']全局变量的模式来处理. ecshop 的$GLOBALS[ ...

  9. 适应手机端的jQuery图片滑块动画

    一款比较特别的jQuery图片滑块插件,它不仅在PC浏览器上可以使用,而且更适合在手机端的网页中使用.这款jQuery插件不仅可以定义图片切换的方向,而且可以即时切换图片切换的动画方式,可以有平移.翻 ...

  10. HDU 5224 Tom and paper(最小周长)

    HDU 5224 Tom and paper(最小周长) Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d &a ...