diff --git a/karma.conf.js b/karma.conf.js index 7fdf3e0..e09663a 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,5 +1,14 @@ const webpackCfg = require('./script/webpack.dev') webpackCfg.devtool = 'inline-source-map' +webpackCfg.module.loaders.push({ + test: /\.js$/, + exclude: /node_modules|lib\/util\.js/, + loader: 'istanbul-instrumenter-loader', + enforce: 'post', + options: { + esModules: true + } +}) module.exports = function(config) { config.set({ @@ -27,24 +36,21 @@ module.exports = function(config) { 'karma-jasmine', 'karma-jquery', 'karma-chrome-launcher', - 'karma-coverage', 'karma-webpack', 'karma-sourcemap-loader', - 'karma-sourcemap-writer' + 'karma-coverage-istanbul-reporter' ], webpackServer: { noInfo: true }, preprocessors: { - 'src/index.js': ['webpack', 'sourcemap', 'sourcemap-writer', 'coverage'] + 'src/index.js': ['webpack', 'sourcemap'] }, webpack: webpackCfg, - coverageReporter: { - type: 'json', - subdir: '.', - file: 'coverage-final.json' + coverageIstanbulReporter: { + reports: ['html', 'lcovonly', 'text', 'text-summary'] }, - reporters: ['progress', 'coverage'], + reporters: ['progress', 'coverage-istanbul'], port: 9876, colors: true, logLevel: config.LOG_INFO, diff --git a/package.json b/package.json index 12d4f04..eb89615 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build": "webpack --config script/webpack.release.js && node script/build && shx cp README.md dist", "build:analyser": "webpack --config script/webpack.analyser.js", "dev": "webpack-dev-server --config script/webpack.dev.js --host 0.0.0.0", - "test": "karma start && remap-istanbul -i coverage/coverage-final.json -o coverage/coverage-remapped.json -t json && node script/coverage && shx rm src/index.js.map", + "test": "karma start", "format": "prettier *.js eustia/*.js src/**/*.{js,scss,css} script/*.js test/*.{js,html} --write", "lint": "eslint src/**/*.js", "lint:fix": "npm run lint -- --fix", @@ -48,7 +48,7 @@ "handlebars-loader": "^1.7.1", "html-minifier": "^4.0.0", "html-minifier-loader": "^1.4.1", - "istanbul": "^0.4.5", + "istanbul-instrumenter-loader": "^3.0.1", "jasmine-core": "^2.8.0", "jasmine-jquery": "^2.1.1", "jquery": "^3.4.1", @@ -56,11 +56,10 @@ "json-loader": "^0.5.7", "karma": "^4.4.1", "karma-chrome-launcher": "^3.1.0", - "karma-coverage": "^1.1.1", + "karma-coverage-istanbul-reporter": "^2.1.1", "karma-jasmine": "^1.1.1", "karma-jquery": "^0.2.4", "karma-sourcemap-loader": "^0.3.7", - "karma-sourcemap-writer": "^0.1.2", "karma-webpack": "^2.0.6", "licia": "^1.9.0", "node-sass": "^4.13.0", @@ -68,7 +67,6 @@ "postcss-loader": "^2.0.9", "postcss-prefixer": "^2.1.2", "prettier": "^1.18.2", - "remap-istanbul": "^0.13.0", "sass-loader": "^6.0.6", "shx": "^0.3.2", "webfonts-generator": "^0.4.0", diff --git a/script/coverage.js b/script/coverage.js deleted file mode 100644 index 42b1f06..0000000 --- a/script/coverage.js +++ /dev/null @@ -1,43 +0,0 @@ -const path = require('path') -const istanbul = require('istanbul') -const reduce = require('licia/reduce') -const keys = require('licia/keys') - -let collector = new istanbul.Collector() -let reporter = new istanbul.Reporter() - -let remappedJson = require('../coverage/coverage-remapped.json') - -let coverage = reduce( - keys(remappedJson), - function(result, source) { - if (isSrc()) { - let correctPath = source.replace( - path.resolve(__dirname, '../src'), - path.resolve(__dirname, '../') - ) - - let val = remappedJson[source] - val.path = correctPath - result[correctPath] = val - } - - function isSrc(src) { - return ( - source.match(/src.*\.js$/) && - source.indexOf('node_modules') < 0 && - source.indexOf('util') < 0 - ) - } - - return result - }, - {} -) - -collector.add(coverage) - -reporter.addAll(['text', 'html', 'lcov']) -reporter.write(collector, true, function() { - console.log('open coverage/index.html to see the coverage report.') -})