Skip to content

Karma Example

Karma配置实例项目,支持ES6语法:

测试管理工具:Karma
测试框架:Mocha
断言库:Chai
测试浏览器:Chrome
测试覆盖率统计工具:Karma-Coverage

单元测试,顾名思义,就是为了测试代码的质量。对于某段代码或组件,如果通过单元测试后的代码覆盖率越高,说明该代码或组件鲁棒性更高,在生产环境中出现bug的机率越低。

代码覆盖率(code coverage)有四个测量维度,

行覆盖率(line coverage):是否每一行都执行了?
函数覆盖率(function coverage):是否每个函数都调用了?
分支覆盖率(branch coverage):是否每个if代码块都执行了?
语句覆盖率(statement coverage):是否每个语句都执行了?

本文简要介绍如何搭建一个支持 ES6 语法的单元测试环境,本工程demo源码可参考这里

本工程使用的相关工具介绍如下:

测试管理工具:Karma 测试框架:Mocha 断言库:Chai 测试浏览器:Chrome 测试覆盖率统计工具:Karma-Coverage

karma 配置文件内容:

js
// Karma configuration
module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['mocha'],
    files: [
      'test/**/*.js'
    ],
    exclude: [],
    preprocessors: {
      'test/**/*.js': ['webpack']
    },
    reporters: ['spec', 'coverage'],

    coverageReporter: {
      dir: 'coverage/',
      reporters: [
          { type: 'html' },
          { type: 'text'},
          { type: 'text-summary' }
      ]
    },
    
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    concurrency: Infinity,
    webpack: {
      module: {
        loaders: [{
          test: /\.js$/,
          loader: 'babel-loader',
          exclude: /node_modules/,
          query: {
            presets: ['es2015'],
            plugins: ['istanbul']
          }
        }]
      }
    },
    webpackMiddleware: {
      noInfo: true
    }
  })
}
npm test

即可查看测试报告了

共 20 个模块,1301 篇 Markdown 文档。