-
Notifications
You must be signed in to change notification settings - Fork 21
/
karma.conf.js
84 lines (65 loc) · 1.56 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
var fs = require('fs');
var path = require('path');
var REGEX_TEST = /\-test\.js$/;
function findTests(dir) {
var tests = [];
fs.readdirSync(dir).forEach(function (file) {
file = path.resolve(dir, file);
var stat = fs.statSync(file);
if (stat && stat.isDirectory()) {
tests = tests.concat(findTests(file));
} else if (REGEX_TEST.test(file)) {
tests.push(file);
}
});
return tests;
}
var tests = findTests(path.resolve(process.cwd(), 'lib'));
module.exports = function(config) {
var conf = {
basePath: '',
frameworks: ['mocha'],
files: tests,
preprocessors: {},
reporters: ['dots'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
captureTimeout: 60000,
singleRun: false,
webpack: {
cache: true,
devtool: 'inline-source-map',
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
}
]
}
},
webpackServer: {
stats: {
colors: true
}
},
plugins: [
require('karma-webpack'),
require('karma-sourcemap-loader'),
require('karma-mocha'),
require('karma-chrome-launcher'),
require('karma-firefox-launcher'),
require('karma-ie-launcher'),
require('karma-phantomjs-launcher'),
require('karma-safari-launcher')
]
};
tests.forEach(function (test) {
conf.preprocessors[test] = ['webpack', 'sourcemap'];
});
config.set(conf);
};