-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkarma.conf.js
134 lines (113 loc) · 4.46 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
131
132
133
134
const webpack = require("webpack");
module.exports = function (config) {
//noinspection JSUnresolvedFunction
config.set({
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ["Chrome"],
// browsers: ["Chrome", "Firefox", "PhantomJS","IE"],
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: "",
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ["mocha", "es6-shim"],
// list of files / patterns to load in the browser
files: [
// each file acts as entry point for the webpack configuration
// all files ending in ".karma"
"test/**/*.karma.ts",
"test/**/*.karma.tsx"
],
// list of files to exclude
exclude: [],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
// add webpack as preprocessor
"test/**/*.karma.ts": ["webpack", "sourcemap"],
"test/**/*.karma.tsx": ["webpack", "sourcemap"]
},
// test results reporter to use
// possible values: "dots", "progress"
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ["mocha", "progress", "jenkins"],
jenkinsReporter: {
// outputFile is ignored, set in package.json with REPORT_FILE=./results/karmatests.xml
// see https://github.com/actano/karma-jenkins-reporter/issues/2
outputFile: "test-results.xml",
suite: "game-of-life", // this will be mapped to the package
classnameSuffix: "karma"
},
webpack: {
// you don"t need to specify the entry option because
// karma watches the test entry points
// webpack watches dependencies
resolve: {
// Add ".ts" and ".tsx" as resolvable extensions.
extensions: ["", ".webpack.js", ".web.js", ".ts", ".tsx", ".js", ".min.js", ".json"],
alias: {"ag-grid-root": __dirname + "/node_modules/ag-grid"},
modulesDirectories: [
"",
"src",
"test",
"node_modules"
]
},
devtool: "inline-source-map",
module: {
loaders: [
// All files with a ".ts" or ".tsx" extension will be handled by "ts-loader".
{test: /\.tsx?$/, loader: "ts-loader"},
{test: /\.css$/, loader: "style-loader!css-loader"},
{test: /\.(png|jpg|gif)$/, loader: "file-loader?name=img/[name].[ext]"},
{test: /\.json$/, loader: "json-loader"},
// loaders needed for bootstrap
{test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file-loader"},
{test: /\.(woff|woff2)$/, loader: "url-loader?prefix=font/&limit=5000"},
{test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url-loader?limit=10000&mimetype=application/octet-stream"},
{test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url-loader?limit=10000&mimetype=image/svg+xml"}
],
preLoaders: [
// All output ".js" files will have any sourcemaps re-processed by "source-map-loader".
{test: /\.js$/, loader: "source-map-loader"}
]
},
plugins: [
// sourcemaps only work with this patch, see
// https://github.com/webpack-contrib/karma-webpack/issues/109#issuecomment-224961264
new webpack.SourceMapDevToolPlugin({
filename: null, // if no value is provided the sourcemap is inlined
test: /\.(ts|tsx|js)($|\?)/i // process .js and .ts files only
})
]
},
webpackMiddleware: {
// webpack-dev-middleware configuration
// i.e.
noInfo: true,
// and use stats to turn off verbose output
stats: {
// options i.e.
chunks: false
}
},
// enable / disable colors in the output (reporters and logs)
colors: true,
plugins: [
require("karma-webpack"),
require("karma-mocha"),
require("karma-es6-shim"),
require("karma-phantomjs-launcher"),
require("karma-chrome-launcher"),
require("karma-firefox-launcher"),
require("karma-ie-launcher"),
require("karma-edge-launcher"),
require("karma-mocha-reporter"),
require("karma-jenkins-reporter"),
require("karma-sourcemap-loader")
// require("karma-spec-reporter")
// require("istanbul-instrumenter-loader"),
// require("karma-coverage"),
]
});
};