diff --git a/.travis.yml b/.travis.yml index a9b2644c4..5db607259 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,9 +5,14 @@ env: global: - secure: eW41gIqOizwO4pTgWnAAbW75AP7F+CK9qfSed/fSh4sJ9HWMIY1YRIaY8gjr+6jV/f7XVHcXuym6ZxgINYSkVKbF1JKxBJNLOXtSgNbVHSic58pYFvUjwxIBI9aPig9uux1+DbnpWqXFDTcACJSevQZE0xwmjdrSkDLgB0G34v8= - secure: Y2Av+Gd3z9uQEB36GwdOOuGka0hx0/HeitASEo59z934O8RxnmN9eNTXS7dDT3XtKtwxIyLTOEpS7qlRdWahH28hr/dS4xJj6ao58C+1xMcDs6NAPGmDxUlcJWpcGEsnjmXjQCc3fBioSTdpIBrK/gdvgpNh77UKG74Sk7Z+YGk= - - secure: YI+YbTOGf2x4fPMKW+KhJiZWswoXT6xOKGwLfsQsVwmFX1LerJouil5D5iYOQuL4FE3pNaoJSNakIsokJQuGKJMmnPc8rdhMZuBJBk6MRghurE2Xe9qBHfuUBPlfD61nARESm4WDcyMwM0QVYaOKeY6aIpZ91qbUbyc60EEx3C4= addons: - sauce_connect: true + chrome: stable + firefox: latest +dist: trusty +sudo: false +before_script: + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start notifications: webhooks: urls: diff --git a/karma.conf.js b/karma.conf.js index c09cceec3..18e3fbe21 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -2,8 +2,54 @@ // 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' + }, + sl_ie9: { + base: 'SauceLabs', + browserName: 'internet explorer', + version: '9.0', + platform: 'Windows 7' + }, + sl_ie10: { + base: 'SauceLabs', + browserName: 'internet explorer', + version: '10.0', + platform: 'Windows 7' + }, + sl_ie11: { + base: 'SauceLabs', + browserName: 'internet explorer', + version: '11.0', + platform: 'Windows 7' + }, + sl_edge: { + base: 'SauceLabs', + browserName: 'MicrosoftEdge', + version: '15.15063', + 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) @@ -17,7 +63,7 @@ module.exports = function(config) { // list of files / patterns to load in the browser files: [ - 'tests/testrunner.js', + 'build/testrunner.js', { pattern: './tests/**/*', 'watched': true, 'included': false, 'served': true}, { pattern: './dist/**/*', 'watched': true, 'included': false, 'served': true}, { pattern: './node_modules/**/*', 'watched': true, 'included': false, 'served': true} @@ -38,8 +84,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 +105,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 +132,6 @@ module.exports = function(config) { } }, - browserNoActivityTimeout: 30000 + browserNoActivityTimeout: 120000 }) }; diff --git a/package.json b/package.json index 4aff99824..6ec10bef7 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": "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",