1
1
// retrieve args
2
2
const argv = require ( 'minimist' ) ( process . argv . slice ( 2 ) ) ;
3
- const COVERAGE = argv . coverage === true ;
3
+ const TRAVIS = process . env . TRAVIS ;
4
+ const COVERAGE = argv . coverage === true || TRAVIS ; // code coverage on by default on TRAVIS, or activated by flag --coverage
4
5
5
6
// the following env vars are used in webpack.config.js
6
7
process . env . UNIT_TEST = true ;
@@ -10,14 +11,33 @@ const webpackConfig = require('./webpack.config');
10
11
const log = require ( 'npmlog' ) ;
11
12
log . level = 'silly' ;
12
13
13
- const reporters = [ 'mocha' ] ;
14
- const coverageReporter_reporters = [
15
- { type : 'lcov' , dir : './build/reports/coverage' }
14
+ const plugins = [
15
+ 'karma-webpack' ,
16
+ 'karma-sinon' ,
17
+ 'karma-mocha' ,
18
+ 'karma-mocha-reporter' ,
19
+ 'karma-sourcemap-loader' ,
20
+ 'karma-chrome-launcher' ,
21
+ 'karma-phantomjs-launcher'
16
22
] ;
23
+ const reporters = [ 'mocha' ] ;
24
+ // default coverage reporter (we may want different reporters between local & CI)
25
+ var coverageReporter = {
26
+ reporters : [
27
+ { type : 'lcov' , dir : './build/reports/coverage' }
28
+ ]
29
+ } ;
17
30
18
31
if ( COVERAGE ) {
19
32
log . info ( 'karma' , 'COVERAGE mode enabled' ) ;
20
33
reporters . push ( 'coverage' ) ;
34
+ plugins . push ( 'karma-coverage' ) ;
35
+ }
36
+ if ( COVERAGE && TRAVIS ) {
37
+ log . info ( 'karma' , 'TRAVIS mode - will send coverage reports to coveralls.io' ) ;
38
+ reporters . push ( 'coveralls' ) ;
39
+ plugins . push ( 'karma-coveralls' ) ;
40
+ coverageReporter = { type : 'lcovonly' , dir : './build/reports/coverage' } ;
21
41
}
22
42
23
43
module . exports = function ( config ) {
@@ -48,26 +68,15 @@ module.exports = function(config) {
48
68
noInfo : true //please don't spam the console when running in karma!
49
69
} ,
50
70
51
- plugins : [
52
- 'karma-webpack' ,
53
- 'karma-sinon' ,
54
- 'karma-mocha' ,
55
- 'karma-mocha-reporter' ,
56
- 'karma-sourcemap-loader' ,
57
- 'karma-chrome-launcher' ,
58
- 'karma-phantomjs-launcher' ,
59
- 'karma-coverage'
60
- ] ,
71
+ plugins : plugins ,
61
72
62
73
63
74
//babelPreprocessor: {
64
75
// options: {
65
76
// presets: ['airbnb']
66
77
// }
67
78
//},
68
- coverageReporter : {
69
- reporters : coverageReporter_reporters
70
- } ,
79
+ coverageReporter : coverageReporter ,
71
80
reporters : reporters ,
72
81
port : 9876 ,
73
82
colors : true ,
0 commit comments