该文章整理于2017年,当时为解决在GridManager2.3.0版本中ES6替换时遇到的问题。
原文如下
替换之后发现,原先的测试覆盖率从72% 下降至 24%。通过 coverage html 在本地测试后发现, 覆盖目标文件使用的为 babel 转化之后的代码。
解决方法
由于GridManager
中使用的是webpack
环境下的karma
, 所以下面的步骤将基于karma
, webpack
。
1、安装所需插件:
npm install --save-dev babel-plugin-istanbul
npm install --save-dev karma-babel-preprocessor
npm install --save-dev karma-sourcemap-loader
2、修改 package.json
"scripts": {
"test": "NODE_ENV=test karma start"
}
3、.babelrc 中增加配置项
"env": {
"test": {
"plugins": ["istanbul"]
}
}
4、修改 karma.conf.js
preprocessors: {
'src/js/*.js': ['webpack', 'sourcemap', 'coverage'],
'test/*_test.js': ['webpack', 'sourcemap']
}
// ...
webpack: {
// ...
devtool: 'inline-source-map'</