From 068480f6063230fd701dcc3a651967e578df7421 Mon Sep 17 00:00:00 2001 From: Niklas von Hertzen Date: Sat, 12 Aug 2017 13:46:02 +0800 Subject: [PATCH] Add saucelabs to karma runner --- .travis.yml | 3 +-- karma.conf.js | 56 ++++++++++++++++++++++++++------------------------- package.json | 5 +++-- 3 files changed, 33 insertions(+), 31 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9033590..5db6072 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,9 @@ env: global: - secure: eW41gIqOizwO4pTgWnAAbW75AP7F+CK9qfSed/fSh4sJ9HWMIY1YRIaY8gjr+6jV/f7XVHcXuym6ZxgINYSkVKbF1JKxBJNLOXtSgNbVHSic58pYFvUjwxIBI9aPig9uux1+DbnpWqXFDTcACJSevQZE0xwmjdrSkDLgB0G34v8= - secure: Y2Av+Gd3z9uQEB36GwdOOuGka0hx0/HeitASEo59z934O8RxnmN9eNTXS7dDT3XtKtwxIyLTOEpS7qlRdWahH28hr/dS4xJj6ao58C+1xMcDs6NAPGmDxUlcJWpcGEsnjmXjQCc3fBioSTdpIBrK/gdvgpNh77UKG74Sk7Z+YGk= - - secure: YI+YbTOGf2x4fPMKW+KhJiZWswoXT6xOKGwLfsQsVwmFX1LerJouil5D5iYOQuL4FE3pNaoJSNakIsokJQuGKJMmnPc8rdhMZuBJBk6MRghurE2Xe9qBHfuUBPlfD61nARESm4WDcyMwM0QVYaOKeY6aIpZ91qbUbyc60EEx3C4= addons: chrome: stable - sauce_connect: true + firefox: latest dist: trusty sudo: false before_script: diff --git a/karma.conf.js b/karma.conf.js index 4a51664..d265b02 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -2,8 +2,30 @@ // Generated on Sat Aug 05 2017 23:42:26 GMT+0800 (Malay Peninsula Standard Time) const port = 9876; - module.exports = function(config) { + const slLaunchers = (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) ? {} : { + sl_beta_chrome: { + base: 'SauceLabs', + browserName: 'chrome', + platform: 'Windows 10', + version: 'beta' + }, + sl_stable_firefox: { + base: 'SauceLabs', + browserName: 'firefox', + platform: 'Windows 10' + } + }; + + const customLaunchers = Object.assign({}, slLaunchers, { + stable_chrome: { + base: 'Chrome' + }, + stable_firefox: { + base: 'Firefox' + } + }); + config.set({ // base path that will be used to resolve all patterns (eg. files, exclude) @@ -38,8 +60,7 @@ module.exports = function(config) { // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress'], - + reporters: ['dots', 'saucelabs'], // web server port port, @@ -60,37 +81,18 @@ module.exports = function(config) { // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: [ - 'Chrome', - 'Firefox', - 'IE9', - 'IE10', - 'IE11', - 'Edge' - ], + browsers: Object.keys(customLaunchers), - customLaunchers: { - IE9: { - base: 'IE', - 'x-ua-compatible': 'IE=EmulateIE9' - }, - IE10: { - base: 'IE', - 'x-ua-compatible': 'IE=EmulateIE10' - }, - IE11: { - base: 'IE' - } - }, + customLaunchers, // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits - singleRun: false, + singleRun: true, // Concurrency level // how many browser should be started simultaneous - concurrency: Infinity, + concurrency: 5, proxies: { '/dist': `http://localhost:${port}/base/dist`, @@ -106,6 +108,6 @@ module.exports = function(config) { } }, - browserNoActivityTimeout: 30000 + browserNoActivityTimeout: 120000 }) }; diff --git a/package.json b/package.json index 284ebdc..6ec10be 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "karma-firefox-launcher": "1.0.1", "karma-ie-launcher": "1.0.0", "karma-mocha": "1.3.0", + "karma-sauce-launcher": "1.1.0", "mocha": "3.5.0", "prettier": "1.5.3", "promise-polyfill": "6.0.2", @@ -57,8 +58,8 @@ "format": "prettier --single-quote --no-bracket-spacing --tab-width 4 --print-width 100 --write \"{src,tests,scripts}/**/*.js\"", "flow": "flow", "lint": "eslint src/**", - "test": "npm run flow && npm run lint && karma start --single-run --browsers Chrome", - "karma": "karma start karma.conf.js", + "test": "npm run flow && npm run lint && npm run karma", + "karma": "karma start --single-run", "watch": "webpack --progress --colors --watch" }, "homepage": "https://html2canvas.hertzen.com",