karma.sauce.config.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. var webpack = require('webpack')
  2. var base = require('./karma.base.config.js')
  3. base.webpack.plugins = [
  4. new webpack.DefinePlugin({
  5. __WEEX__: false,
  6. 'process.env': {
  7. NODE_ENV: '"development"',
  8. // sauce lab vms are slow!
  9. TRANSITION_DURATION: 500,
  10. TRANSITION_BUFFER: 50
  11. }
  12. })
  13. ]
  14. /**
  15. * Having too many tests running concurrently on saucelabs
  16. * causes timeouts and errors, so we have to run them in
  17. * smaller batches.
  18. */
  19. var batches = [
  20. // the cool kids
  21. {
  22. sl_chrome: {
  23. base: 'SauceLabs',
  24. browserName: 'chrome',
  25. platform: 'Windows 7'
  26. },
  27. sl_firefox: {
  28. base: 'SauceLabs',
  29. browserName: 'firefox'
  30. },
  31. sl_mac_safari: {
  32. base: 'SauceLabs',
  33. browserName: 'safari',
  34. platform: 'OS X 10.10'
  35. }
  36. },
  37. // ie family
  38. {
  39. sl_ie_9: {
  40. base: 'SauceLabs',
  41. browserName: 'internet explorer',
  42. platform: 'Windows 7',
  43. version: '9'
  44. },
  45. sl_ie_10: {
  46. base: 'SauceLabs',
  47. browserName: 'internet explorer',
  48. platform: 'Windows 8',
  49. version: '10'
  50. },
  51. sl_ie_11: {
  52. base: 'SauceLabs',
  53. browserName: 'internet explorer',
  54. platform: 'Windows 8.1',
  55. version: '11'
  56. },
  57. sl_edge: {
  58. base: 'SauceLabs',
  59. browserName: 'MicrosoftEdge',
  60. platform: 'Windows 10'
  61. }
  62. },
  63. // mobile
  64. {
  65. sl_ios_safari_8: {
  66. base: 'SauceLabs',
  67. browserName: 'iphone',
  68. version: '8.4'
  69. },
  70. sl_ios_safari_9: {
  71. base: 'SauceLabs',
  72. browserName: 'iphone',
  73. version: '9.3'
  74. },
  75. sl_android_4_4: {
  76. base: 'SauceLabs',
  77. browserName: 'android',
  78. version: '4.4'
  79. },
  80. sl_android_5_1: {
  81. base: 'SauceLabs',
  82. browserName: 'android',
  83. version: '5.1'
  84. }
  85. }
  86. ]
  87. module.exports = function (config) {
  88. var batch = batches[process.argv[4] || 0]
  89. config.set(Object.assign(base, {
  90. singleRun: true,
  91. browsers: Object.keys(batch),
  92. customLaunchers: batch,
  93. reporters: process.env.CI
  94. ? ['dots', 'saucelabs'] // avoid spamming CI output
  95. : ['progress', 'saucelabs'],
  96. sauceLabs: {
  97. testName: 'Vue.js unit tests',
  98. recordScreenshots: false,
  99. connectOptions: {
  100. 'no-ssl-bump-domains': 'all' // Ignore SSL error on Android emulator
  101. },
  102. build: process.env.CIRCLE_BUILD_NUM || process.env.SAUCE_BUILD_ID || Date.now()
  103. },
  104. // mobile emulators are really slow
  105. captureTimeout: 300000,
  106. browserNoActivityTimeout: 300000,
  107. plugins: base.plugins.concat([
  108. 'karma-sauce-launcher'
  109. ])
  110. }))
  111. }