/
karma.conf.js
119 lines (113 loc) · 3.04 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
'use strict';
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const isDebug = process.env.DEBUG || false;
const isTravis = process.env.TRAVIS || false;
const KARMA_SINGLE_RUN_FLAG = process.argv.filter(s => s.includes('single-run'));
const RUN_ONCE = process.env.BDD || isDebug ? false : KARMA_SINGLE_RUN_FLAG ?
true : false;
const browsers = isTravis ? ['PhantomJS'] : [isDebug ? 'Chrome' : 'PhantomJS'];
const options = {
basePath: '',
browsers: browsers,
frameworks: ['jasmine'],
autoWatch: true,
singleRun: RUN_ONCE,
files: [
// es6-shim is currently needed for phantomjs
'./node_modules/es6-shim/es6-shim.js',
'specs.bundle.js',
'./src/core/**/*.spec.js',
'./src/components/**/*.spec.js'
],
preprocessors: {
'specs.bundle.js': ['webpack', 'sourcemap'],
'./src/core/**/*.spec.js': ['webpack', 'sourcemap'],
'./src/components/**/*.spec.js': ['webpack', 'sourcemap']
},
webpack: {
devtool: 'inline-source-map',
module: {
loaders: [{
test: /\.js$/,
exclude: /(node_modules)/,
loaders: ['babel']
}, {
test: /\.html$/,
loader: 'ngtemplate!html',
exclude: /(index)/
}, {
test: /\.less$/,
loader: ExtractTextPlugin.extract('css?sourceMap!' +
'less?sourceMap')
}]
},
plugins: [
new ExtractTextPlugin('[name].[chunkhash].style.css')
],
resolve: {}
},
webpackMiddleware: {
noInfo: true
},
plugins: [
require('karma-webpack'),
require('karma-sourcemap-loader'),
'karma-phantomjs-launcher',
'karma-chrome-launcher',
'karma-jasmine',
// 'karma-html-reporter',
// 'karma-spec-reporter',
'karma-mocha-reporter',
'karma-clear-screen-reporter'
// 'karma-browserstack-launcher'
],
reporters: [
// 'progress',
// 'spec',
// 'coverage',
'mocha',
'clear-screen'
],
mochaReporter: {
// output: 'autowatch'
}
// the default configuration
// htmlReporter: {
// outputDir: 'karma_html',
// templatePath: './node_modules/karma-html-reporter/jasmine_template.html'
// }
};
// var browserStackOptions = {
// // global config of your BrowserStack account
// browserStack: {
// username: process.env.bs_user,
// accessKey: process.env.bs_key
// },
// // define browsers
// customLaunchers: {
// bs_chrome_mac: {
// base: 'BrowserStack',
// browser: 'chrome',
// browser_version: '39.0',
// os: 'OS X',
// os_version: 'Mountain Lion'
// },
// bs_chrome_windows: {
// base: 'BrowserStack',
// browser : 'chrome',
// browser_version : '39.0',
// os : 'Windows',
// os_version : '8'
// }
// },
// browsers: ['bs_chrome_mac', 'bs_chrome_windows']
// };
module.exports = function(config) {
// if (isTravis) {
// Object.keys(browserStackOptions).forEach(function (key) {
// options[key] = browserStackOptions[key];
// });
// }
config.set(options);
};