美文网首页
karma+jasmine前端单元测试

karma+jasmine前端单元测试

作者: 一长亭 | 来源:发表于2017-03-22 10:36 被阅读0次

karma+jasmine前端单元测试


Q:为何要单元测试?
A:为了提升代码的质量、减少bug、快速定位bug、减少调试时间。

本文主要采用karma+jasmine来进行简单的单元测试。

0.生成一个项目package.json:

    $ npm init -y

1.安装必须依赖:

    $ npm install karma --save
    $ npm install karma-jasmine --save
    $ npm install karma-chrome-launcher --save
    $ npm install jasmine-core --save
    $ sudo npm install karma-cli -g
    $ npm install karma-coverage --save-dev

2.创建文件
在项目中创建一个js文件夹,在其中创建以下内容的js文件

    // index.js
    function test1(){
        return 'abc';
    }
    function test2(){
        return '333';
    }

    // jasmineTest.js
    describe('TestFunction',function(){
        it('测试test',function(){
            expect('abc').toEqual(test1());
        });
        it('测试test2',function(){
            expect('123').toEqual(test2());
        });
    });

3.生成karma.conf.js
在项目根目录中使用karma init 生成一个测试配置文件:内容如下

    // Karma configuration
// Generated on Mon Nov 07 2016 19:54:49 GMT+0800 (CST)

module.exports = function(config) {
  config.set({
    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: 'js',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],


    // list of files / patterns to load in the browser
    files: ['*.js'
    ],


    // list of files to exclude
    exclude: [
    ],


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {'js/*.js':'coverage'
    },


    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress','coverage'],


    // web server port
    port: 9876,


    // enable / disable colors in the output (reporters and logs)
    colors: true,


    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: true,


    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['Chrome'],


    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false,

    // Concurrency level
    // how many browser should be started simultaneous
    concurrency: Infinity
  })
}

4.开始测试:

    $   karma start

5.测试结果:
在浏览器的console中可以看到结果,也可以在命令行中看到SUCCESS。

6.单元测试覆盖率:
当我们在控制台键入karma start的时候会生成一个coverage文件夹,点击index.html文件,在浏览器中打开,可以查看到测试报表。

相关文章

  • karma+jasmine前端单元测试

    karma+jasmine前端单元测试 Q:为何要单元测试?A:为了提升代码的质量、减少bug、快速定位bug、减...

  • 解读Jasmine的Spy机制

    众所周知,Angular所用的单元测试框架是Karma+Jasmine,最近在写Angular的Unit Test...

  • Karma - Vue的自动化测试

    Vue使用了Karma+Jasmine实现自动化测试。主要做了以下几方面的测试: 开发模式无浏览器测试 单元测试:...

  • 基于karma+jasmine的web前端自动化测试

    本文介绍了基于karma+jasmine的web前端自动化测试的方案和详细操作指导。 名词解释 Node.js 是...

  • 前端单元测试(一) - 入门向

    目录 概述为何要写测试前端测试的类型TDD vs BDD 常用前端单元测试框架JestMocha More前端测试...

  • 前端单元测试到底测什么?

    前端单元测试到底测什么?单元测试[http://yun.itheima.com/course/437.html?2...

  • 单元测试之断言

    单元测试之断言 作为前端开发,很少去自己写单元测试。对于单元测试的了解也很少,自学了一点关于单元测试断言的知识,有...

  • 前端单元测试介绍

    前言:公司团队希望前端做单元测试,说起来干前端这么长时间以来还从来没写过单元测试,网上找了些资料,what?这都是...

  • linux系统下Gitlab Runner安装配置

    最近给前端代码加上了单元测试,可能随着代码量增大,单元测试会越来越多,为了提升代码质量,决定采用自动化工具来跑前端...

  • Jasmine单元测试入门

    标签:前端开发 单元测试 jasmine 1. 什么是Jasmine Jasmine is a behavior-...

网友评论

      本文标题:karma+jasmine前端单元测试

      本文链接:https://www.haomeiwen.com/subject/pgtonttx.html