unitarios unitarias unit test que pruebas hacer como javascript karma-runner webpack babeljs karma-coverage

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" } }