code coverage with babel istanbul (#4649)
* WIP add instanbul code coverage to vue files * move webpack coverage config to a separate file for test:coverage, pin dependencies, remove istanbul-instrumenter-loader * dont include node_modules in babel config, it breaks istanbul for some reason * ignore spec files from coverage * document coverage files, remove unused karma config * use test instead of test:coverage in config.yml, disable code and link to issue to enable coverage in Vue <template>s
This commit is contained in:
42
webpack.coverage.js
Normal file
42
webpack.coverage.js
Normal file
@@ -0,0 +1,42 @@
|
||||
// This file extends the webpack.dev.js config to add istanbul coverage
|
||||
// instrumentation using babel-plugin-istanbul (see babel.coverage.js)
|
||||
|
||||
const config = require('./webpack.dev');
|
||||
|
||||
const path = require('path');
|
||||
|
||||
config.devtool = false;
|
||||
|
||||
const vueLoaderRule = config.module.rules.find(r => r.use === 'vue-loader');
|
||||
|
||||
vueLoaderRule.use = {
|
||||
loader: 'vue-loader'
|
||||
// Attempt to use Babel with babel-plugin-istanbul
|
||||
|
||||
// TODO The purpose of this was to try to add coverage to JS expressions
|
||||
// inside `<template>` markup, but it seems to add only coverage inside
|
||||
// `<script>` tags.
|
||||
// Issue: https://github.com/nasa/openmct/issues/4973
|
||||
//
|
||||
// options: {
|
||||
// compiler: require('vue-template-babel-compiler'),
|
||||
// compilerOptions: {
|
||||
// babelOptions: require('./babel.coverage')
|
||||
// }
|
||||
// }
|
||||
};
|
||||
|
||||
config.module.rules.push({
|
||||
test: /\.js$/,
|
||||
// test: /(\.js$)|(\?vue&type=template)/,
|
||||
// exclude: /node_modules(?!.*\.vue)/,
|
||||
exclude: /(Spec\.js$)|(node_modules)/,
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
configFile: path.resolve(process.cwd(), 'babel.coverage.js')
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = config;
|
||||
Reference in New Issue
Block a user