zoukankan      html  css  js  c++  java
  • karma、jasmine做angularjs单元测试

    引用文: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)
    
    
  • 相关阅读:
    经典数字信号处理图书的个人评述
    信号与系统
    FFT结果的物理意义
    如何选导师,如何做好研究生,如何做好同行评审
    Google学术指数2015版
    2015影响因子Excel版
    VHDL MOD和REM(转)
    面向对象的三大特征
    【数据结构与算法】内部排序之一:插入排序和希尔排序的N中实现(不断优化,附完整源码)
    JAVA字符串String、StringBuffer、StringBuilder、基本数据类型包装
  • 原文地址:https://www.cnblogs.com/ixiaohao/p/5554674.html
Copyright © 2011-2022 走看看