Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 183 lines (161 sloc) 4.955 kb
80d0f98 Vojta Jina chore(travis): clean up logs
vojtajina authored
1 module.exports = function(config, specificOptions) {
29f96c8 Vojta Jina chore: update karma to 0.9.4
vojtajina authored
2 config.set({
3 frameworks: ['jasmine'],
4 autoWatch: true,
5 logLevel: config.LOG_INFO,
6 logColors: true,
33223e2 Vojta Jina chore: set up Sauce Labs with Travis
vojtajina authored
7 browsers: ['Chrome'],
751f058 Vojta Jina chore(travis): increase disconnect timeout
vojtajina authored
8 browserDisconnectTimeout: 10000,
4ee0687 Vojta Jina chore(travis): tolerate 2 disconnects to make the build more stable
vojtajina authored
9 browserDisconnectTolerance: 2,
9a81b86 Vojta Jina chore(travis): give browsers more time to respond
vojtajina authored
10 browserNoActivityTimeout: 20000,
475eddf Vojta Jina chore(karma): longer reconnect timeout
vojtajina authored
11
33223e2 Vojta Jina chore: set up Sauce Labs with Travis
vojtajina authored
12
7615723 Vojta Jina chore: make it simpler to run tests on SL/BS during local development
vojtajina authored
13 // SauceLabs config for local development.
33223e2 Vojta Jina chore: set up Sauce Labs with Travis
vojtajina authored
14 sauceLabs: {
80d0f98 Vojta Jina chore(travis): clean up logs
vojtajina authored
15 testName: specificOptions.testName || 'AngularJS',
7615723 Vojta Jina chore: make it simpler to run tests on SL/BS during local development
vojtajina authored
16 startConnect: true
33223e2 Vojta Jina chore: set up Sauce Labs with Travis
vojtajina authored
17 },
18
7615723 Vojta Jina chore: make it simpler to run tests on SL/BS during local development
vojtajina authored
19 // BrowserStack config for local development.
ffd075b Vojta Jina chore(travis): let's give BrowserStack a try
vojtajina authored
20 browserStack: {
b08427d Vojta Jina chore(travis): add some more info for BrowserStack sessions
vojtajina authored
21 project: 'AngularJS',
22 name: specificOptions.testName,
7615723 Vojta Jina chore: make it simpler to run tests on SL/BS during local development
vojtajina authored
23 startTunnel: true,
fd4b999 Vojta Jina chore(travis): increase BrowserStack timeout to 10min
vojtajina authored
24 timeout: 600 // 10min
ffd075b Vojta Jina chore(travis): let's give BrowserStack a try
vojtajina authored
25 },
26
80d0f98 Vojta Jina chore(travis): clean up logs
vojtajina authored
27 // For more browsers on Sauce Labs see:
28 // https://saucelabs.com/docs/platforms/webdriver
33223e2 Vojta Jina chore: set up Sauce Labs with Travis
vojtajina authored
29 customLaunchers: {
30 'SL_Chrome': {
31 base: 'SauceLabs',
32 browserName: 'chrome'
7909ebe Vojta Jina chore: run more browsers on Travis (IE8,IE9,IE10,Safari,FF)
vojtajina authored
33 },
34 'SL_Firefox': {
35 base: 'SauceLabs',
36 browserName: 'firefox'
37 },
38 'SL_Safari': {
39 base: 'SauceLabs',
40 browserName: 'safari',
41 platform: 'Mac 10.8',
42 version: '6'
43 },
44 'SL_IE_8': {
45 base: 'SauceLabs',
46 browserName: 'internet explorer',
47 platform: 'Windows 7',
48 version: '8'
49 },
50 'SL_IE_9': {
51 base: 'SauceLabs',
52 browserName: 'internet explorer',
53 platform: 'Windows 2008',
54 version: '9'
55 },
56 'SL_IE_10': {
57 base: 'SauceLabs',
58 browserName: 'internet explorer',
59 platform: 'Windows 2012',
60 version: '10'
ffd075b Vojta Jina chore(travis): let's give BrowserStack a try
vojtajina authored
61 },
0410572 Vojta Jina chore(travis): define a launcher for IE11 (SauceLabs)
vojtajina authored
62 'SL_IE_11': {
63 base: 'SauceLabs',
64 browserName: 'internet explorer',
65 platform: 'Windows 8.1',
66 version: '11'
67 },
ffd075b Vojta Jina chore(travis): let's give BrowserStack a try
vojtajina authored
68
69 'BS_Chrome': {
70 base: 'BrowserStack',
71 browser: 'chrome',
72 os: 'OS X',
73 os_version: 'Mountain Lion'
74 },
75 'BS_Safari': {
76 base: 'BrowserStack',
77 browser: 'safari',
78 os: 'OS X',
79 os_version: 'Mountain Lion'
80 },
81 'BS_Firefox': {
82 base: 'BrowserStack',
83 browser: 'firefox',
84 os: 'Windows',
85 os_version: '8'
86 },
87 'BS_IE_8': {
88 base: 'BrowserStack',
89 browser: 'ie',
90 browser_version: '8.0',
91 os: 'Windows',
92 os_version: '7'
93 },
94 'BS_IE_9': {
95 base: 'BrowserStack',
96 browser: 'ie',
97 browser_version: '9.0',
98 os: 'Windows',
99 os_version: '7'
100 },
101 'BS_IE_10': {
102 base: 'BrowserStack',
103 browser: 'ie',
104 browser_version: '10.0',
105 os: 'Windows',
106 os_version: '8'
107 },
108 'BS_IE_11': {
109 base: 'BrowserStack',
110 browser: 'ie',
111 browser_version: '11.0',
112 os: 'Windows',
113 os_version: '8.1'
33223e2 Vojta Jina chore: set up Sauce Labs with Travis
vojtajina authored
114 }
115 }
29f96c8 Vojta Jina chore: update karma to 0.9.4
vojtajina authored
116 });
c64a985 Vojta Jina chore: use only polling on Travis/SL
vojtajina authored
117
118
119 if (process.env.TRAVIS) {
338f949 Vojta Jina chore(travis): set SauceLabs build id
vojtajina authored
120 var buildLabel = 'TRAVIS #' + process.env.TRAVIS_BUILD_NUMBER + ' (' + process.env.TRAVIS_BUILD_ID + ')';
121
09271a8 Vojta Jina chore(travis): ignore 404 warnings, debug log into file
vojtajina authored
122 config.logLevel = config.LOG_DEBUG;
ddff347 Vojta Jina chore(travis): use only websockets and xhr-polling
vojtajina authored
123 config.transports = ['websocket', 'xhr-polling'];
7615723 Vojta Jina chore: make it simpler to run tests on SL/BS during local development
vojtajina authored
124
338f949 Vojta Jina chore(travis): set SauceLabs build id
vojtajina authored
125 config.browserStack.build = buildLabel;
7615723 Vojta Jina chore: make it simpler to run tests on SL/BS during local development
vojtajina authored
126 config.browserStack.startTunnel = false;
127
338f949 Vojta Jina chore(travis): set SauceLabs build id
vojtajina authored
128 config.sauceLabs.build = buildLabel;
7615723 Vojta Jina chore: make it simpler to run tests on SL/BS during local development
vojtajina authored
129 config.sauceLabs.startConnect = false;
130 config.sauceLabs.tunnelIdentifier = process.env.TRAVIS_JOB_NUMBER;
ddff347 Vojta Jina chore(travis): use only websockets and xhr-polling
vojtajina authored
131
6127528 Vojta Jina chore(travis): switch back to SauceLabs
vojtajina authored
132 // TODO(vojta): remove once SauceLabs supports websockets.
133 // This speeds up the capturing a bit, as browsers don't even try to use websocket.
134 config.transports = ['xhr-polling'];
135
80d0f98 Vojta Jina chore(travis): clean up logs
vojtajina authored
136 // Debug logging into a file, that we print out at the end of the build.
137 config.loggers.push({
138 type: 'file',
09271a8 Vojta Jina chore(travis): ignore 404 warnings, debug log into file
vojtajina authored
139 filename: process.env.LOGS_DIR + '/' + (specificOptions.logFile || 'karma.log')
80d0f98 Vojta Jina chore(travis): clean up logs
vojtajina authored
140 });
c64a985 Vojta Jina chore: use only polling on Travis/SL
vojtajina authored
141 }
09271a8 Vojta Jina chore(travis): ignore 404 warnings, debug log into file
vojtajina authored
142
143
144 // Terrible hack to workaround inflexibility of log4js:
145 // - ignore web-server's 404 warnings,
146 // - ignore DEBUG logs (on Travis), we log them into a file instead.
147 var IGNORED_404 = [
148 '/favicon.ico',
149 '/%7B%7BtestUrl%7D%7D',
150 '/someSanitizedUrl',
151 '/{{testUrl}}'
152 ];
153 var log4js = require('./node_modules/karma/node_modules/log4js');
154 var layouts = require('./node_modules/karma/node_modules/log4js/lib/layouts');
155 var originalConfigure = log4js.configure;
156 log4js.configure = function(log4jsConfig) {
157 var consoleAppender = log4jsConfig.appenders.shift();
158 var originalResult = originalConfigure.call(log4js, log4jsConfig);
159 var layout = layouts.layout(consoleAppender.layout.type, consoleAppender.layout);
160
161
162
163 log4js.addAppender(function(log) {
5d6482b Vojta Jina chore(karma): correct the 404 ignoring
vojtajina authored
164 var msg = log.data[0];
165
09271a8 Vojta Jina chore(travis): ignore 404 warnings, debug log into file
vojtajina authored
166 // ignore web-server's 404s
167 if (log.categoryName === 'web-server' && log.level.levelStr === config.LOG_WARN &&
5d6482b Vojta Jina chore(karma): correct the 404 ignoring
vojtajina authored
168 IGNORED_404.some(function(ignoredLog) {return msg.indexOf(ignoredLog) !== -1})) {
09271a8 Vojta Jina chore(travis): ignore 404 warnings, debug log into file
vojtajina authored
169 return;
170 }
171
172 // on Travis, ignore DEBUG statements
173 if (process.env.TRAVIS && log.level.levelStr === config.LOG_DEBUG) {
174 return;
175 }
176
177 console.log(layout(log));
178 });
179
180 return originalResult;
181 };
29f96c8 Vojta Jina chore: update karma to 0.9.4
vojtajina authored
182 };
Something went wrong with that request. Please try again.