-
Notifications
You must be signed in to change notification settings - Fork 1
/
karma.config.js
92 lines (76 loc) · 2.23 KB
/
karma.config.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
const os = require('os');
const path = require('path');
const ExitOnErrorPlugin = require('exit-on-error-webpack-plugin');
const webpackConfig = require('./webpack.config')({
test: true,
});
const output = {
path: path.join(os.tmpdir(), '_karma_webpack_') + Math.floor(Math.random() * 1000000),
};
// eslint-disable-next-line no-undef
module.exports = (config) => {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: 'src',
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['mocha', 'webpack'],
plugins: [
'karma-webpack',
'karma-mocha',
'karma-sourcemap-loader',
'karma-chrome-launcher',
'karma-mocha-reporter'
],
files: [
{
pattern: 'test.ts',
watched: false
},
{
pattern: `${output.path}/**/*`,
watched: false,
included: false,
served: true
}
],
exclude: [],
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'test.ts': ['webpack', 'sourcemap'],
},
webpack: {
...webpackConfig,
output,
plugins: [
...webpackConfig.plugins,
new ExitOnErrorPlugin()
]
},
webpackServer: {
noInfo: true,
},
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['mocha'],
mochaReporter: {
showDiff: true,
},
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// 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,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['ChromeHeadless'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: true,
// Concurrency level
// how many browser should be started simultaneous
concurrency: Infinity,
});
};