Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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