美文网首页
karma + mocha 项目的基本配置

karma + mocha 项目的基本配置

作者: liuxinya | 来源:发表于2018-03-20 11:00 被阅读0次
目录
coverage
src
  |__test.js
test
  |__test.test.js
karma.conf.js
package.json

项目所需依赖 package.json

{
  "devDependencies": {
    "chai": "^4.1.2",        // 断言库
    "karma": "^2.0.0",  
    "karma-chai": "^0.1.0",
    "karma-chrome-launcher": "^2.2.0",    // 自动启用浏览器插件
    "karma-coverage": "^1.1.1",      // 测试代码覆盖率报告 插件
    "karma-mocha": "^1.3.0",
    "karma-mocha-reporter": "^2.2.5",   // 命令行中 测试结果显示风格
    "mocha": "^5.0.0",
    //   让karma支持es6语法的依赖
    "babel-plugin-transform-es2015-modules-umd": "^6.6.5",
    "babel-preset-es2015": "^6.6.0",
    "karma-babel-preprocessor": "^6.0.1",
  }
}

karma的相关配置 karma.conf.js

module.exports = function(config) {
  config.set({
    // 告诉karma用的测试框架(mocha)和断言库 (karma-chai)
    frameworks: ['mocha','chai'],

    // 将功能代码和测试代码加载到karma
    files: [
      'src/**/*.js',
      'test/**/*.spec.js'
    ],

    // 检测文件变动 文件变动自动执行测试文件
    autoWatch: true,   

    // 自动启用Chrome浏览器执行代码 karma-chrome-launcher
    browsers: ['Chrome'],

    // 测试报告的显示格式(命令行内的显示格式)  karma-mocha-reporter
    // 测试覆盖率报告  coverage
    reporters: ['mocha', 'coverage'],

    preprocessors: {
      // source files, that you wanna generate coverage for 
      // do not include tests or libraries 
      // (these files will be instrumented by Istanbul) 
      'src/**/*.js': ['babel', 'coverage'],
      'test/**/*.test.js': ['babel']
    },
 
    // 生成的覆盖率报告 配置项
    coverageReporter: {
      type : 'html',
      dir : 'coverage/'
    }
  });
};

.babelrc配置

{
  "presets": ["es2015"],
  "plugins": ["transform-es2015-modules-umd"],
  // 是用在babel编译时添加istanbul忽略,代码覆盖率能够清晰展示。
  "auxiliaryCommentBefore": "istanbul ignore next"
}

test.js

function add(x, y) {
    return x + y;
}

function asyn(a){
    setTimeout(function(){
        let b = 2;
        b ++;
        a(b)
    })
}
export {add, async}

test.test.js

import * as test from '../src/test'
describe('加法函数的测试', function() {
    it('1 加 1 应该等于 2', function() {
        expect(test.add(1,1)).to.equal(2);
    });
});

describe('测试异步', () => {
    it('2秒后2等于3',(done) => {
        test.asyn((b) => {
            expect(b).to.be.equal(3);
            done();
        })

    })
})

相关网站

有关karma:(https://github.com/karma-runner/karma
karam所有插件:(https://www.npmjs.com/browse/keyword/karma-plugin
本文项目地址:(https://github.com/liuxinya/Karma-Mocha

相关文章

网友评论

      本文标题:karma + mocha 项目的基本配置

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