1
+ const path = require ( 'path' ) ;
2
+
1
3
module . exports = function ( config ) {
2
4
3
5
const configuration = {
@@ -14,7 +16,9 @@ module.exports = function (config) {
14
16
require ( 'karma-chrome-launcher' ) ,
15
17
require ( 'karma-webpack' ) ,
16
18
require ( 'karma-sourcemap-loader' ) ,
17
- require ( 'karma-spec-reporter' )
19
+ require ( 'karma-spec-reporter' ) ,
20
+ require ( 'karma-coverage-istanbul-reporter' ) ,
21
+ require ( "istanbul-instrumenter-loader" )
18
22
] ,
19
23
20
24
// list of files / patterns to load in the browser
@@ -41,8 +45,25 @@ module.exports = function (config) {
41
45
rules : [
42
46
{
43
47
test : / \. t s / ,
44
- loaders : [ 'ts-loader' , 'source-map-loader' ] ,
48
+ use : [
49
+ { loader : 'ts-loader' } ,
50
+ { loader : 'source-map-loader' }
51
+ ] ,
45
52
exclude : / n o d e _ m o d u l e s /
53
+ } ,
54
+ {
55
+ enforce : 'post' ,
56
+ test : / \. t s / ,
57
+ use : [
58
+ {
59
+ loader : 'istanbul-instrumenter-loader' ,
60
+ options : { esModules : true }
61
+ }
62
+ ] ,
63
+ exclude : [
64
+ / \. s p e c .t s / ,
65
+ / n o d e _ m o d u l e s /
66
+ ]
46
67
}
47
68
] ,
48
69
exprContextCritical : false
@@ -59,7 +80,13 @@ module.exports = function (config) {
59
80
// test results reporter to use
60
81
// possible values: 'dots', 'progress'
61
82
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
62
- reporters : [ 'spec' ] ,
83
+ reporters : [ 'spec' , 'coverage-istanbul' ] ,
84
+
85
+ coverageIstanbulReporter : {
86
+ reports : [ 'html' , 'lcovonly' ] ,
87
+ dir : path . join ( __dirname , 'coverage' ) ,
88
+ fixWebpackSourcePaths : true
89
+ } ,
63
90
64
91
65
92
// web server port
0 commit comments