Skip to content
This repository was archived by the owner on Dec 4, 2023. It is now read-only.

Commit b7f93e5

Browse files
authored
Merge pull request mochajs#2678 from coderbyheart/master
chore(Saucelabs): test on IE9, IE10 and IE11.
2 parents d1d6f03 + 5bb3277 commit b7f93e5

File tree

3 files changed

+74
-55
lines changed

3 files changed

+74
-55
lines changed

.travis.yml

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,43 @@ matrix:
3333
env: TARGET=test-node
3434
- node_js: '7'
3535
env: TARGET=lint
36+
# phantomjs
3637
- node_js: '7'
37-
env: TARGET=test-browser S3=1
38+
env: TARGET=test-browser
39+
# chrome
40+
- node_js: '7'
41+
env: TARGET=test-browser BROWSER="chrome@latest" PLATFORM="Windows 8"
42+
# edge
43+
- node_js: '7'
44+
env: TARGET=test-browser BROWSER="MicrosoftEdge@latest" PLATFORM="Windows 10"
45+
# ie11
46+
- node_js: '7'
47+
env: TARGET=test-browser BROWSER="internet [email protected]" PLATFORM="Windows 8.1"
48+
# ie10
49+
- node_js: '7'
50+
env: TARGET=test-browser BROWSER="internet [email protected]" PLATFORM="Windows 8"
51+
# ie9
52+
- node_js: '7'
53+
env: TARGET=test-browser BROWSER="internet [email protected]" PLATFORM="Windows 7"
54+
# ie8
55+
- node_js: '7'
56+
env: TARGET=test-browser BROWSER="internet [email protected]" PLATFORM="Windows 7"
57+
# ie7
58+
- node_js: '7'
59+
env: TARGET=test-browser BROWSER="internet [email protected]" PLATFORM="Windows XP"
60+
# firefox
61+
- node_js: '7'
62+
env: TARGET=test-browser BROWSER="firefox@latest" PLATFORM="Windows 8.1"
63+
# safari
64+
- node_js: '7'
65+
env: TARGET=test-browser BROWSER="safari@latest" PLATFORM="OS X 10.11"
3866

3967
before_install: scripts/travis-before-install.sh
4068

69+
install:
70+
- npm install
71+
- cd node_modules && ln -nsf @coderbyheart/karma-sauce-launcher karma-sauce-launcher && cd ../
72+
4173
before_script: scripts/travis-before-script.sh
4274

4375
script: make $TARGET

karma.conf.js

Lines changed: 40 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ module.exports = function (config) {
4848
},
4949
reporters: ['spec'],
5050
colors: true,
51-
browsers: [osName() === 'macOS Sierra' ? 'Chrome' : 'PhantomJS'],
51+
browsers: [osName() === 'macOS Sierra' ? 'Chrome' : 'PhantomJS'], // This is the default browser to run, locally
5252
logLevel: config.LOG_INFO,
5353
client: {
5454
mocha: {
@@ -58,8 +58,17 @@ module.exports = function (config) {
5858
};
5959

6060
// see https://github.com/saucelabs/karma-sauce-example
61+
62+
// We define the browser to run on the Saucelabs Infrastructure
63+
// via the environment variables BROWSER and PLATFORM.
64+
// PLATFORM is e.g. "Windows"
65+
// BROWSER is expected to be in the format "<name>@<version>",
66+
// e.g. "MicrosoftEdge@latest"
67+
// See https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/
68+
// for available browsers.
69+
6170
// TO RUN LOCALLY, execute:
62-
// `CI=1 SAUCE_USERNAME=<user> SAUCE_ACCESS_KEY=<key> make test-browser`
71+
// `CI=1 SAUCE_USERNAME=<user> SAUCE_ACCESS_KEY=<key> BROWSER=<browser> PLATFORM=<platform> make test-browser`
6372
var env = process.env;
6473
var sauceConfig;
6574

@@ -68,16 +77,18 @@ module.exports = function (config) {
6877
if (env.TRAVIS) {
6978
console.error('Travis-CI detected');
7079
bundleDirpath = path.join(baseBundleDirpath, process.env.TRAVIS_BUILD_ID);
71-
if (env.SAUCE_USERNAME && env.SAUCE_ACCESS_KEY) {
72-
// correlate build/tunnel with Travis
73-
sauceConfig = {
74-
build: 'TRAVIS #' + env.TRAVIS_BUILD_NUMBER +
75-
' (' + env.TRAVIS_BUILD_ID + ')',
76-
tunnelIdentifier: env.TRAVIS_JOB_NUMBER
77-
};
78-
console.error('Configured SauceLabs');
79-
} else {
80-
console.error('No SauceLabs credentials present');
80+
if (env.BROWSER && env.PLATFORM) {
81+
if (env.SAUCE_USERNAME && env.SAUCE_ACCESS_KEY) {
82+
// correlate build/tunnel with Travis
83+
sauceConfig = {
84+
build: 'TRAVIS #' + env.TRAVIS_BUILD_NUMBER +
85+
' (' + env.TRAVIS_BUILD_ID + ')',
86+
tunnelIdentifier: env.TRAVIS_JOB_NUMBER
87+
};
88+
console.error('Configured SauceLabs');
89+
} else {
90+
console.error('No SauceLabs credentials present');
91+
}
8192
}
8293
} else if (env.APPVEYOR) {
8394
console.error('AppVeyor detected');
@@ -126,56 +137,32 @@ module.exports = function (config) {
126137
};
127138

128139
function addSauceTests (cfg) {
140+
var env = process.env;
129141
cfg.reporters.push('saucelabs');
130-
131-
cfg.customLaunchers = {
132-
ie8: {
133-
base: 'SauceLabs',
134-
browserName: 'internet explorer',
135-
platform: 'Windows 7',
136-
version: '8.0'
137-
},
138-
ie7: {
139-
base: 'SauceLabs',
140-
browserName: 'internet explorer',
141-
platform: 'Windows XP',
142-
version: '7.0'
143-
},
144-
chrome: {
145-
base: 'SauceLabs',
146-
browserName: 'chrome',
147-
platform: 'Windows 8',
148-
version: 'latest'
149-
},
150-
edge: {
151-
base: 'SauceLabs',
152-
browserName: 'MicrosoftEdge',
153-
platform: 'Windows 10',
154-
version: 'latest'
155-
},
156-
firefox: {
157-
base: 'SauceLabs',
158-
browserName: 'firefox',
159-
platform: 'Windows 8.1',
160-
version: 'latest'
161-
},
162-
safari: {
163-
base: 'SauceLabs',
164-
browserName: 'safari',
165-
platform: 'OS X 10.11',
166-
version: 'latest'
167-
}
142+
cfg.customLaunchers = {};
143+
cfg.customLaunchers[env.BROWSER] = {
144+
base: 'SauceLabs',
145+
browserName: env.BROWSER.split('@')[0],
146+
version: env.BROWSER.split('@')[1],
147+
platform: env.PLATFORM
168148
};
149+
cfg.browsers = [env.BROWSER];
169150

170-
cfg.browsers = cfg.browsers.concat(Object.keys(cfg.customLaunchers));
171-
151+
// See https://github.com/karma-runner/karma-sauce-launcher
152+
// See https://github.com/bermi/sauce-connect-launcher#advanced-usage
172153
cfg.sauceLabs = {
173154
public: 'public',
174-
startConnect: true
155+
startConnect: true,
156+
connectOptions: {
157+
connectRetries: 10,
158+
connectRetryTimeout: 60000
159+
}
175160
};
176161

177162
cfg.concurrency = 5;
178163

164+
cfg.retryLimit = 5;
165+
179166
// for slow browser booting, ostensibly
180167
cfg.captureTimeout = 120000;
181168
cfg.browserNoActivityTimeout = 20000;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@
336336
"karma-expect": "^1.1.2",
337337
"karma-mocha": "^1.3.0",
338338
"karma-phantomjs-launcher": "^1.0.2",
339-
"karma-sauce-launcher": "^1.0.0",
339+
"karma-sauce-launcher": "coderbyheart/karma-sauce-launcher",
340340
"karma-spec-reporter": "0.0.26",
341341
"nyc": "^10.0.0",
342342
"os-name": "^2.0.1",

0 commit comments

Comments
 (0)