From b0c6ec50b71e0b392f1283fe02e229bb56cc78bb Mon Sep 17 00:00:00 2001 From: Brian Reavis <brian@thirdroute.com> Date: Thu, 29 Jan 2015 03:57:34 -0700 Subject: [PATCH] Coverage reporting + restored original browser matrix + other fixes. --- .travis.yml | 3 +- karma.conf.js | 92 +++++++++++++++++++++++++++------------------------ package.json | 1 + 3 files changed, 51 insertions(+), 45 deletions(-) diff --git a/.travis.yml b/.travis.yml index b5bf4b70d..9cdbf84f0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ env: global: - secure: df9eTd6JkMOgdF3J3UInb0ouaDEbF4Y0sklmvwgBUs38yRvGQ3mucrzH13dCU0GYW8mM/H9euF7yG4/leWQHoUYdRJTDRy/sWXGvs6qg7DTkUXsmGyzv/5XxS86WTD5B9LbzB1hvRs5nzWeA1sFP6rpzGG6HwogM/+37ijRjKQQ= - secure: FI6ATM3Pngx0bowuYi5WHIDCe0R5ORlJWNsFxJyZLEusie+wZrRy9QbZsVvJGVYZJKAR9MFT3Ks494ou85lyfUnfvEnn+lX2DQ3Hsyz0xyBNoSvNkQbhZEsUr0TV+UGpCvSwYr6lYqXsBy6VxqyAkXDkqdVTAzMydq5ttGxszPU= + - secure: "ctyTk+LdMsch1jTRLLTboJW2TsJCIRtXktEQ86JdGteg0YSvsqDj/LndUaaGZ2ZSR3sSJ1Q/YV1X0M0VizrzX5I7/3WnKViyeKygJ5sSbTuqkjwFa2sAAmrnmBv9JWofIc2XuRG3tfZv2fX6QMDy5PA72KGPBmGAw4S8WTxGkHQ=" matrix: allow_failures: - env: TARGET=saucelabs @@ -18,4 +19,4 @@ before_script: - make script: - export COMMIT_MESSAGE=$(git show -s --format=%B $TRAVIS_COMMIT | tr -d '\n') - - npm test + - TRAVIS_CI=1 npm test diff --git a/karma.conf.js b/karma.conf.js index dac531374..6f12fcfa2 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,46 +1,53 @@ module.exports = function(config) { - var saucelabs_browsers = { - 'SL_Chrome': { - base: 'SauceLabs', - browserName: 'chrome', - version: '39' - }, - 'SL_Firefox': { - base: 'SauceLabs', - browserName: 'firefox', - version: '31' - }, - 'SL_Safari': { - base: 'SauceLabs', - browserName: 'safari', - platform: 'OS X 10.10', - version: '8' - }, - 'SL_IE_9': { - base: 'SauceLabs', - browserName: 'internet explorer', - platform: 'Windows 2008', - version: '9' - }, - 'SL_IE_10': { - base: 'SauceLabs', - browserName: 'internet explorer', - platform: 'Windows 2012', - version: '10' - }, - 'SL_IE_11': { - base: 'SauceLabs', - browserName: 'internet explorer', - platform: 'Windows 8.1', - version: '11' - } - }; + var saucelabsBrowsers = [ + // mobile + {platform: 'OS X 10.10', browserName: 'iPhone', version: '8.1'}, + {platform: 'OS X 10.10 ', browserName: 'iPhone', version: '6.0'}, + {platform: 'OS X 10.10', browserName: 'iPad', version: '8.1'}, + {platform: 'OS X 10.10', browserName: 'iPad', version: '6.0'}, + {platform: 'Linux', browserName: 'android', version: '4.4'}, + {platform: 'Linux', browserName: 'android', version: '4.3'}, + // desktop (safari) + {platform: 'OS X 10.8', browserName: 'safari', version: 6}, + {platform: 'OS X 10.9', browserName: 'safari', version: 7}, + {platform: 'OS X 10.10', browserName: 'safari', version: 8}, + // desktop (chrome) + {platform: 'OS X 10.10', browserName: 'chrome', version: 39}, + {platform: 'OS X 10.10', browserName: 'chrome', version: 38}, + {platform: 'OS X 10.10', browserName: 'chrome', version: 37}, + {platform: 'Windows 7', browserName: 'chrome', version: 39}, + {platform: 'Windows 7', browserName: 'chrome', version: 38}, + {platform: 'Windows 7', browserName: 'chrome', version: 37}, + // desktop (firefox) + {platform: 'Windows 7', browserName: 'firefox', version: 35}, + {platform: 'Windows 8', browserName: 'firefox', version: 35}, + {platform: 'OS X 10.10', browserName: 'firefox', version: 34}, + {platform: 'OS X 10.10', browserName: 'firefox', version: 33}, + {platform: 'OS X 10.10', browserName: 'firefox', version: 32}, + // desktop (internet explorer) + {platform: 'Windows 8', browserName: 'iexplore', version: 10}, + {platform: 'Windows 8.1', browserName: 'iexplore', version: 11}, + {platform: 'Windows 7', browserName: 'iexplore', version: 9} + ]; + + var customLaunchers = {}; + saucelabsBrowsers.forEach(function(browser, i) { + browser.base = 'SauceLabs'; + customLaunchers['sl' + i] = browser; + }); var targets = { - 'saucelabs': Object.keys(saucelabs_browsers), + 'saucelabs': Object.keys(customLaunchers), 'phantomjs': ['PhantomJS'] }; + var reporters = ['mocha']; + if (process.env.TRAVIS_CI) { + reporters = process.env.TARGET === 'saucelabs' + ? ['progress', 'saucelabs'] + : ['mocha', 'coverage', 'coveralls'] + } + config.set({ frameworks: ['mocha', 'chai'], files: [ @@ -60,7 +67,7 @@ module.exports = function(config) { 'src/**/*.js': ['coverage'] }, coverageReporter: { - type: 'text-summary', + type: process.env.TRAVIS_CI ? 'lcov' : 'text-summary', dir: 'coverage/' }, sauceLabs: { @@ -68,13 +75,10 @@ module.exports = function(config) { tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER, build: process.env.TRAVIS_BUILD_NUMBER, testName: process.env.COMMIT_MESSAGE, - tags: ['selectize', 'test'], - options: { - 'selenium-version': '2.41.0' - } + tags: ['selectize', 'test'] }, - customLaunchers: saucelabs_browsers, - reporters: ['mocha', 'coverage'], + customLaunchers: customLaunchers, + reporters: reporters, port: 8888, colors: true, captureTimeout: 0, diff --git a/package.json b/package.json index d8e21462d..3b551e48a 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "karma": "^0.12.31", "karma-chai": "^0.1.0", "karma-coverage": "^0.2.7", + "karma-coveralls": "^0.1.5", "karma-mocha": "^0.1.10", "karma-mocha-reporter": "^0.3.1", "karma-phantomjs-launcher": "^0.1.4",