-
Notifications
You must be signed in to change notification settings - Fork 39
/
Copy pathkarma.conf.js
130 lines (113 loc) · 3.09 KB
/
karma.conf.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/**
* @fileOverview
* Karma configuration.
*/
module.exports = function (config) {
config.set({
// Base path that will be used to resolve all patterns (eg. files, exclude).
basePath: '',
// Frameworks to use.
// See: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['mocha', 'chai', 'sinon-chai'],
client: {
mocha: {
// Change Karma's debug.html to the mocha web reporter.
reporter: 'html',
ui: 'bdd'
}
},
// list of files / patterns to load in the browser.
files: [
// We need the polyfill for testing es6 modules.
'node_modules/babel-polyfill/dist/polyfill.js',
// Loaded into the browser test page.
'test/unit/mochaInit.js',
'test/unit/**/*.spec.js',
// Made available but not loaded. Note that the path for loading these
// files is prefixed with 'base/'.
{
pattern: 'test/fixtures/**',
included: false,
served: true,
watched: true,
nocache: true
},
],
// List of files to exclude.
exclude: [],
// Preprocess matching files before serving them to the browser.
// See: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'test/**/*.js': ['webpack']
},
coverageReporter: {
type: 'text',
dir: 'coverage/'
},
webpack: {
node: {
fs: 'empty'
},
// https://github.com/deepsweet/istanbul-instrumenter-loader allows
// code coverage of just the things we want.
module: {
loaders: [{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
plugins: ['lodash'],
presets: ['es2015']
}
}],
postLoaders: [{
test: /\.js$/,
exclude: /(test|node_modules)\//,
loader: 'istanbul-instrumenter'
}]
}
},
webpackMiddleware: {
noInfo: true
},
// Test results reporter to use. Possible values: 'dots', 'progress'.
// See: https://npmjs.org/browse/keyword/karma-reporter
reporters: [
'dots',
'coverage'
],
// Web server port.
port: 9876,
// Enable / disable colors in the output (reporters and logs).
colors: true,
// Level of logging.
//
// possible values:
// config.LOG_DISABLE
// config.LOG_ERROR
// config.LOG_WARN
// config.LOG_INFO
// config.LOG_DEBUG
logLevel: config.LOG_INFO,
// Enable / disable watching file and executing tests whenever any file
// changes.
autoWatch: true,
customLaunchers: {
ChromeHeadless: {
base: 'Chrome',
flags: [
'--no-sandbox',
'--headless',
'--disable-gpu',
'--remote-debugging-port=9222'
]
}
},
// Start these browsers.
// See: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['ChromeHeadless'],
// Continuous Integration mode. If true, Karma captures browsers, runs the
// tests and exits.
singleRun: false
});
};