karma.sauce.config.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. const webpack = require('webpack')
  2. const 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. const 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_9: {
  66. base: 'SauceLabs',
  67. browserName: 'iphone',
  68. version: '10.3'
  69. },
  70. sl_android_6_0: {
  71. base: 'SauceLabs',
  72. browserName: 'android',
  73. version: '6.0'
  74. }
  75. }
  76. ]
  77. module.exports = function (config) {
  78. const batch = batches[process.argv[4] || 0]
  79. config.set(Object.assign(base, {
  80. singleRun: true,
  81. browsers: Object.keys(batch),
  82. customLaunchers: batch,
  83. reporters: process.env.CI
  84. ? ['dots', 'saucelabs'] // avoid spamming CI output
  85. : ['progress', 'saucelabs'],
  86. sauceLabs: {
  87. testName: 'Vue.js unit tests',
  88. recordScreenshots: false,
  89. connectOptions: {
  90. 'no-ssl-bump-domains': 'all' // Ignore SSL error on Android emulator
  91. },
  92. build: process.env.CIRCLE_BUILD_NUM || process.env.SAUCE_BUILD_ID || Date.now()
  93. },
  94. // mobile emulators are really slow
  95. captureTimeout: 300000,
  96. browserNoActivityTimeout: 300000,
  97. plugins: base.plugins.concat([
  98. 'karma-sauce-launcher'
  99. ])
  100. }))
  101. }