replacement: grunt.option('newver'),
recursive: true
}
+ },
+
+ 'saucelabs-qunit': {
+ all: {
+ options: {
+ build: process.env.TRAVIS_JOB_ID,
+ concurrency: 3,
+ urls: ['http://127.0.0.1:3000/js/tests/index.html'],
+ browsers: [
+ // See https://saucelabs.com/docs/platforms/webdriver
+ {
+ browserName: 'safari',
+ version: '6',
+ platform: 'OS X 10.8'
+ },
+ {
+ browserName: 'chrome',
+ version: '28',
+ platform: 'OS X 10.6'
+ },
+ /* FIXME: currently fails 1 tooltip test
+ {
+ browserName: 'firefox',
+ version: '25',
+ platform: 'OS X 10.6'
+ },*/
+ // Mac Opera not currently supported by Sauce Labs
+ /* FIXME: currently fails 1 tooltip test
+ {
+ browserName: 'internet explorer',
+ version: '11',
+ platform: 'Windows 8.1'
+ },*/
+ /*
+ {
+ browserName: 'internet explorer',
+ version: '10',
+ platform: 'Windows 8'
+ },
+ {
+ browserName: 'internet explorer',
+ version: '9',
+ platform: 'Windows 7'
+ },
+ {
+ browserName: 'internet explorer',
+ version: '8',
+ platform: 'Windows 7'
+ },
+ {// unofficial
+ browserName: 'internet explorer',
+ version: '7',
+ platform: 'Windows XP'
+ },
+ */
+ {
+ browserName: 'chrome',
+ version: '31',
+ platform: 'Windows 8.1'
+ },
+ {
+ browserName: 'firefox',
+ version: '25',
+ platform: 'Windows 8.1'
+ },
+ // Win Opera 15+ not currently supported by Sauce Labs
+ {
+ browserName: 'iphone',
+ version: '6.1',
+ platform: 'OS X 10.8'
+ },
+ // iOS Chrome not currently supported by Sauce Labs
+ // Linux (unofficial)
+ {
+ browserName: 'chrome',
+ version: '30',
+ platform: 'Linux'
+ },
+ {
+ browserName: 'firefox',
+ version: '25',
+ platform: 'Linux'
+ }
+ // Android Chrome not currently supported by Sauce Labs
+ /* Android Browser (super-unofficial)
+ {
+ browserName: 'android',
+ version: '4.0',
+ platform: 'Linux'
+ }
+ */
+ ],
+ }
+ }
}
});
// These plugins provide necessary tasks.
- grunt.loadNpmTasks('browserstack-runner');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-html-validation');
grunt.loadNpmTasks('grunt-jekyll');
grunt.loadNpmTasks('grunt-recess');
+ grunt.loadNpmTasks('grunt-saucelabs');
grunt.loadNpmTasks('grunt-sed');
// Docs HTML validation task
// Test task.
var testSubtasks = ['dist-css', 'jshint', 'qunit', 'validate-html'];
- // Only run BrowserStack tests under Travis
- if (process.env.TRAVIS) {
- // Only run BrowserStack tests if this is a mainline commit in twbs/bootstrap, or you have your own BrowserStack key
- if ((process.env.TRAVIS_REPO_SLUG === 'twbs/bootstrap' && process.env.TRAVIS_PULL_REQUEST === 'false') || process.env.TWBS_HAVE_OWN_BROWSERSTACK_KEY) {
- testSubtasks.push('browserstack_runner');
- }
+ // Only run Sauce Labs tests if there's a Sauce access key
+ if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined') {
+ testSubtasks.push('connect');
+ testSubtasks.push('saucelabs-qunit');
}
grunt.registerTask('test', testSubtasks);
+++ /dev/null
-{
- "username": "--secure--",
- "key": "--secure--",
- "test_path": "js/tests/index.html",
- "browsers": [
- {
- "browser": "firefox",
- "browser_version": "latest",
- "os": "OS X",
- "os_version": "Mountain Lion"
- },
- {
- "browser": "safari",
- "browser_version": "latest",
- "os": "OS X",
- "os_version": "Mountain Lion"
- },
- {
- "browser": "chrome",
- "browser_version": "latest",
- "os": "OS X",
- "os_version": "Mountain Lion"
- },
- {
- "browser": "firefox",
- "browser_version": "latest",
- "os": "Windows",
- "os_version": "7"
- },
- {
- "browser": "chrome",
- "browser_version": "latest",
- "os": "Windows",
- "os_version": "7"
- }
- ]
-}
}
]
, "devDependencies": {
- "browserstack-runner": "~0.0.12"
- , "btoa": "~1.1.1"
+ "btoa": "~1.1.1"
, "grunt": "~0.4.1"
, "grunt-contrib-clean": "~0.5.0"
, "grunt-contrib-concat": "~0.3.0"
, "grunt-html-validation": "~0.1.6"
, "grunt-jekyll": "~0.4.0"
, "grunt-recess": "~0.5.0"
+ , "grunt-saucelabs": "~4.1.2"
, "grunt-sed": "~0.1.1"
, "regexp-quote": "~0.0.0"
}