146 lines
4.3 KiB
JavaScript
146 lines
4.3 KiB
JavaScript
// Karma configuration
|
|
// https://wiki.saucelabs.com/display/DOCS/Platform+Configurator
|
|
|
|
// TODO: remove dotenv after local test
|
|
require('dotenv').config()
|
|
|
|
const karmaCommon = require('./karma.conf.common.js')
|
|
|
|
const SauceLabsLaunchers = {
|
|
/** Real mobile devices are not available
|
|
* Your account does not have access to Android devices.
|
|
* Please contact sales@saucelabs.com to add this feature to your account. */
|
|
/* sl_android_chrome: {
|
|
base: 'SauceLabs',
|
|
appiumVersion: '1.5.3',
|
|
deviceName: 'Samsung Galaxy S7 Device',
|
|
deviceOrientation: 'portrait',
|
|
browserName: 'Chrome',
|
|
platformVersion: '6.0',
|
|
platformName: 'Android'
|
|
}, */
|
|
/* sl_android: {
|
|
base: 'SauceLabs',
|
|
browserName: 'Android',
|
|
deviceName: 'Android Emulator',
|
|
deviceOrientation: 'portrait'
|
|
}, */
|
|
SL_firefox_latest: {
|
|
base: 'SauceLabs',
|
|
browserName: 'firefox',
|
|
version: 'latest'
|
|
},
|
|
SL_chrome_latest: {
|
|
base: 'SauceLabs',
|
|
browserName: 'chrome',
|
|
version: 'latest'
|
|
},
|
|
SL_InternetExplorer: {
|
|
base: 'SauceLabs',
|
|
browserName: 'internet explorer',
|
|
version: '11.0'
|
|
}/*
|
|
sl_windows_edge: {
|
|
base: 'SauceLabs',
|
|
browserName: 'MicrosoftEdge',
|
|
version: 'latest',
|
|
platform: 'Windows 10'
|
|
},
|
|
sl_macos_safari: {
|
|
base: 'SauceLabs',
|
|
browserName: 'safari',
|
|
platform: 'macOS 10.13',
|
|
version: '12.0',
|
|
recordVideo: true,
|
|
recordScreenshots: true,
|
|
screenResolution: '1024x768'
|
|
} *//*,
|
|
sl_macos_iphone: {
|
|
base: 'SauceLabs',
|
|
browserName: 'Safari',
|
|
deviceName: 'iPhone SE Simulator',
|
|
deviceOrientation: 'portrait',
|
|
platformVersion: '10.2',
|
|
platformName: 'iOS'
|
|
}
|
|
'SL_Chrome': {
|
|
base: 'SauceLabs',
|
|
browserName: 'chrome',
|
|
version: '48.0',
|
|
platform: 'Linux'
|
|
},
|
|
'SL_Firefox': {
|
|
base: 'SauceLabs',
|
|
browserName: 'firefox',
|
|
version: '50.0',
|
|
platform: 'Windows 10'
|
|
},
|
|
'SL_Safari': {
|
|
base: 'SauceLabs',
|
|
browserName: 'safari',
|
|
platform: 'OS X 10.11',
|
|
version: '10.0'
|
|
} */
|
|
}
|
|
|
|
module.exports = function (config) {
|
|
if (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) {
|
|
console.error('SAUCE_USERNAME and SAUCE_ACCESS_KEY must be provided as environment variables.')
|
|
console.warn('Aborting Sauce Labs test')
|
|
process.exit(1)
|
|
}
|
|
const settings = Object.assign(karmaCommon(config), {
|
|
// Concurrency level
|
|
// how many browser should be started simultaneous
|
|
// Saucelabs allow up to 5 concurrent sessions on the free open source tier.
|
|
concurrency: 5,
|
|
|
|
// this specifies which plugins karma should load
|
|
// by default all karma plugins, starting with `karma-` will load
|
|
// so if you are really puzzled why something isn't working, then comment
|
|
// out plugins: [] - it's here to make karma load faster
|
|
// get possible karma plugins by `ls node_modules | grep 'karma-*'`
|
|
plugins: [
|
|
'karma-jasmine',
|
|
'karma-sauce-launcher'
|
|
],
|
|
|
|
// logLevel: config.LOG_DEBUG,
|
|
|
|
// test results reporter to use
|
|
// possible values: 'dots', 'progress'
|
|
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
|
reporters: ['dots', 'saucelabs'],
|
|
|
|
customLaunchers: SauceLabsLaunchers,
|
|
|
|
// start these browsers
|
|
browsers: Object.keys(SauceLabsLaunchers),
|
|
sauceLabs: {
|
|
testName: 'SVG.js Unit Tests'
|
|
// connectOptions: {
|
|
// noSslBumpDomains: "all"
|
|
// },
|
|
// connectOptions: {
|
|
// port: 5757,
|
|
// logfile: 'sauce_connect.log'
|
|
// },
|
|
}
|
|
|
|
// The number of disconnections tolerated.
|
|
// browserDisconnectTolerance: 0, // well, sometimes it helps to just restart
|
|
// // How long does Karma wait for a browser to reconnect (in ms).
|
|
// browserDisconnectTimeout: 10 * 60 * 1000,
|
|
// // How long will Karma wait for a message from a browser before disconnecting from it (in ms). ~ macOS 10.12 needs more than 7 minutes
|
|
// browserNoActivityTimeout: 20 * 60 * 1000,
|
|
// // Timeout for capturing a browser (in ms). On newer versions of iOS simulator (10.0+), the start up time could be between 3 - 6 minutes.
|
|
// captureTimeout: 12 * 60 * 1000, // this is useful if saucelabs takes a long time to boot a vm
|
|
|
|
// // Required to make Safari on Sauce Labs play nice.
|
|
// // hostname: 'karmalocal.dev'
|
|
})
|
|
|
|
console.log(settings)
|
|
config.set(settings)
|
|
}
|