Skip to content

Instantly share code, notes, and snippets.

@cellog
Last active June 16, 2016 03:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cellog/334ea29be92e656349b5abefdb53a368 to your computer and use it in GitHub Desktop.
Save cellog/334ea29be92e656349b5abefdb53a368 to your computer and use it in GitHub Desktop.
Setting up karma for development and saucelabs
/* eslint no-var: 0, babel/object-shorthand: 0, vars-on-top: 0 */
require('babel-register')
var sauceBrowsers = require('./test/saucebrowsers.js')
var ieBrowsers = require('./test/onlyie.js')
var iosBrowsers = require('./test/onlyios.js')
var isCI = process.env.CONTINUOUS_INTEGRATION === 'true'
var reporters = ['mocha', 'saucelabs']
var browsers = process.env.ONLYIE ? ieBrowsers : sauceBrowsers
var browserKeys = Object.keys(browsers)
var singleRun = true
var sauceParams = {
testName: "react-selection-hoc unit tests",
username: process.env.SAUCEUSER,
accessKey: process.env.ACCESSSAUCE
}
if (process.env.ONLYIOS) {
browsers = iosBrowsers
browserKeys = Object.keys(browsers)
}
if (isCI) {
sauceParams.build = process.env.TRAVIS_BUILD_NUMBER
} else {
sauceParams.build = `Local-Test-${process.env.CURRENTTIME}`
sauceParams.startConnect = false
}
if (process.env.QUICKTEST) {
browsers = {}
browserKeys = ['Chrome']
singleRun = false
}
module.exports = function(config) {
config.set({
basePath: '',
frameworks: [
'mocha-debug',
'mocha',
'sinon-chai'
],
files: [
'test/index.js'
],
preprocessors: {
'test/index.js': ['webpack', 'sourcemap']
},
webpack: require('./test/test.config.es6.js'),
webpackMiddleware: {
noInfo: true
},
reporters: reporters,
mochaReporter: {
output: 'autowatch'
},
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
sauceLabs: sauceParams,
customLaunchers: browsers,
browsers: browserKeys,
captureTimeout: 1200000,
browserNoActivityTimeout: 45000,
singleRun
})
}
#!/usr/bin/env bash
npm run lint
export SAUCEUSER="your-sauce-username-here"
export ACCESSSAUCE="your-sauce-key-here"
export CURRENTTIME=$(date +%Y%m%d-%H%M%S)
#export QUICKTEST=1
#export ONLYIE=1
#export ONLYIOS=1
karma start
const browsers = {
sl_edge_10_13: {
base: 'SauceLabs',
browserName: 'MicrosoftEdge',
platform: 'Windows 10',
version: '13.10586'
},
sl_ie_10_11: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 10',
version: '11.103'
},
sl_ie_8_10: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 8',
version: '10'
}
}
export default browsers
Status API Training Shop Blog About
const browsers = {
sl_iphone_92: {
base: 'SauceLabs',
browserName: 'iphone',
platform: 'OS X 10.10',
version: '9.2',
deviceName: 'iPhone 6 Plus',
deviceOrientation: 'portrait'
},
sl_iphone_84: {
base: 'SauceLabs',
browserName: 'iphone',
platform: 'OS X 10.10',
version: '8.4',
deviceName: 'iPhone 6',
deviceOrientation: 'portrait'
},
sl_iphone_71: {
base: 'SauceLabs',
browserName: 'iphone',
platform: 'OS X 10.10',
version: '7.1',
deviceName: 'iPhone 5s',
deviceOrientation: 'portrait'
}
}
export default browsers
const browsers = {
sl_chrome_10_50: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: '50'
},
sl_chrome_10_49: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: '49'
},
sl_chrome_10_48: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: '48'
},
sl_chrome_10_47: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: '47'
},
sl_chrome_10_46: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: '46'
},
sl_chrome_10_45: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: '45'
},
sl_chrome_10_43: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: '43'
},
sl_firefox_10_46: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'Windows 10',
version: '46'
},
sl_firefox_10_45: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'Windows 10',
version: '45'
},
sl_firefox_10_44: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'Windows 10',
version: '44'
},
sl_firefox_10_43: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'Windows 10',
version: '43'
},
sl_firefox_10_42: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'Windows 10',
version: '42'
},
sl_edge_10_13: {
base: 'SauceLabs',
browserName: 'MicrosoftEdge',
platform: 'Windows 10',
version: '13.10586'
},
sl_ie_10_11: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 10',
version: '11.103'
},
sl_ie_8_10: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 8',
version: '10'
},
sl_safari_osx_11_9: {
base: 'SauceLabs',
browserName: 'safari',
platform: 'OS X 10.11',
version: '9.0'
},
sl_safari_osx_10_8: {
base: 'SauceLabs',
browserName: 'safari',
platform: 'OS X 10.10',
version: '8.0'
},
sl_safari_osx_9_7: {
base: 'SauceLabs',
browserName: 'safari',
platform: 'OS X 10.9',
version: '7.0'
},
sl_safari_osx_8_6: {
base: 'SauceLabs',
browserName: 'safari',
platform: 'OS X 10.8',
version: '6.0'
},
sl_chrome_osx_50: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'OS X 10.11',
version: '50'
},
sl_firefox_osx_46: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'OS X 10.11',
version: '46.0'
},
sl_iphone_92: {
base: 'SauceLabs',
browserName: 'iphone',
platform: 'OS X 10.10',
version: '9.2',
deviceName: 'iPhone 6 Plus',
deviceOrientation: 'portrait'
},
sl_iphone_84: {
base: 'SauceLabs',
browserName: 'iphone',
platform: 'OS X 10.10',
version: '8.4',
deviceName: 'iPhone 6',
deviceOrientation: 'portrait'
},
sl_iphone_71: {
base: 'SauceLabs',
browserName: 'iphone',
platform: 'OS X 10.10',
version: '7.1',
deviceName: 'iPhone 5s',
deviceOrientation: 'portrait'
},
sl_android_51: {
base: 'SauceLabs',
browserName: 'android',
platform: 'Linux',
version: '5.1',
deviceName: 'Android Emulator',
deviceType: 'tablet',
deviceOrientation: 'portrait'
},
sl_android_51p: {
base: 'SauceLabs',
browserName: 'android',
platform: 'Linux',
version: '5.1',
deviceName: 'Android Emulator',
deviceType: 'phone',
deviceOrientation: 'portrait'
},
sl_android_44: {
base: 'SauceLabs',
browserName: 'android',
platform: 'Linux',
version: '4.4',
deviceName: 'Android Emulator',
deviceType: 'phone',
deviceOrientation: 'portrait'
},
sl_android_43: {
base: 'SauceLabs',
browserName: 'android',
platform: 'Linux',
version: '4.3',
deviceName: 'Android Emulator',
deviceType: 'phone',
deviceOrientation: 'portrait'
},
sl_android_42: {
base: 'SauceLabs',
browserName: 'android',
platform: 'Linux',
version: '4.2',
deviceName: 'Android Emulator',
deviceType: 'phone',
deviceOrientation: 'portrait'
},
sl_android_41: {
base: 'SauceLabs',
browserName: 'android',
platform: 'Linux',
version: '4.1',
deviceName: 'Android Emulator',
deviceType: 'phone',
deviceOrientation: 'portrait'
},
sl_opera: {
base: 'SauceLabs',
browserName: 'opera',
platform: 'Linux',
version: '12.15'
}
}
export default browsers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment