javascript - unitarias - test unitarios angular 5
Obtener cobertura de código Karma para el código fuente de pretranspilación (1)
Estoy usando Karma para ejecutar pruebas, paquete web para agrupar archivos y babel para es6 -> transpilation es5. Tengo las pruebas ejecutándose y se está generando la cobertura del código, pero los números de cobertura del código son para los archivos fuente después de ser transpilados. ¿Hay alguna forma de obtener cobertura de código para los archivos fuente originales en su lugar?
Intenté usar el preprocesador del sourcemap
pero no pareció hacer nada. ¿Debo agregar eso a la configuración de la carpeta web en algún lugar?
karma.conf
config.set({
browsers: [''Chrome''], //run in Chrome
files: [
''src/**/*-test.js''
],
frameworks: [''mocha''], //use the mocha test framework
plugins: [
''karma-chrome-launcher'',
''karma-mocha'',
''karma-sourcemap-loader'',
''karma-webpack'',
''karma-coverage'',
],
preprocessors: {
''src/**/*-test.js'': [''webpack'']
},
reporters: [''dots'', ''coverage''], //report results in this format
coverageReporter: {
reporters: [{
type: ''text-summary'',
}, {
type: ''html'',
dir: ''build/reports/coverage''
}]
},
singleRun: true, //just run once by default
webpack: {
node: {
fs: ''empty''
},
// Instrument code that isn''t test or vendor code.
module: {
loaders: [{
test: //.js?$/,
include: path.join(__dirname, ''src/js''),
loader: ''babel?stage=0''
}],
postLoaders: [{
test: //.js$/,
exclude: /(test|node_modules)///,
loader: ''istanbul-instrumenter''
}]
}
},
webpackMiddleware: {
noInfo: true //please don''t spam the console when running in karma!
}
});
La siguiente configuración funciona bien:
karma.conf.js
var path = require(''path'');
module.exports = function(config) {
config.set({
browsers: [ ''Chrome'' ], //run in Chrome
files: [
''src/**/*-test.js''
],
frameworks: [ ''mocha'' ], //use the mocha test framework
preprocessors: {
''src/**/*-test.js'': [ ''webpack'' ]
},
reporters: [ ''dots'', ''coverage'' ], //report results in this format
coverageReporter: {
reporters: [
{
type: ''text-summary''
},
{
type: ''html'',
dir: ''build/reports/coverage''
}
]
},
singleRun: true, //just run once by default
webpack: {
node : {
fs: ''empty''
},
// Instrument code that isn''t test or vendor code.
module: {
preLoaders: [
{ test: //.js$/, loader: ''isparta'', include: path.join(__dirname, ''src/js'') }
],
loaders: [
{
test: //.js$/,
include: path.join(__dirname, ''src/js''),
loader: ''babel?stage=0''
}
]
}
},
webpackMiddleware: {
noInfo: true //please don''t spam the console when running in karma!
}
});
};
paquete.json
{
"devDependencies": {
"babel-core": "^5.8.22",
"babel-loader": "^5.3.2",
"chai": "^3.2.0",
"isparta-loader": "^0.2.0",
"karma": "^0.13.9",
"karma-chrome-launcher": "^0.2.0",
"karma-coverage": "^0.5.0",
"karma-mocha": "^0.2.0",
"karma-webpack": "^1.7.0",
"mocha": "^2.2.5",
"webpack": "^1.11.0"
}
}