brtapsauce

Browserify TAP test runner for SauceLabs

npm install brtapsauce
20 downloads in the last day
142 downloads in the last week
609 downloads in the last month

brtapsauce

Browserify TAP test runner for SauceLabs

Extending sauce-tap-runner with automatic Browserify bundling, test queueing and execution and SauceLabs passed-status setting. brtapsauce can be used for automated tests with Travis-CI, Drone.io, or other CI system.

Usage

Assuming you have a browserifyable file that bundles and executes tap tests (see tape).

Create a test.js file something like this:

const user       = process.env.SAUCE_USER
    , key        = process.env.SAUCE_KEY
    , path       = require('path')
    , brtapsauce = require('brtapsauce')

      // list of browsers & versions that you want to test
    , capabilities = [
          { browserName: 'chrome'            , platform: 'Windows 8' , version: ''   }
        , { browserName: 'firefox'           , platform: 'Windows 8' , version: ''   }
        , { browserName: 'internet explorer' , platform: 'Windows 8' , version: '10' }
        , { browserName: 'internet explorer' , platform: 'Windows 7' , version: '9'  }
        , { browserName: 'internet explorer' , platform: 'Windows 7' , version: '8'  }
        , { browserName: 'internet explorer' , platform: 'Windows XP', version: '7'  }
        , { browserName: 'internet explorer' , platform: 'Windows XP', version: '6'  }
        , { browserName: 'safari'            , platform: 'Windows 7' , version: '5'  }
        , { browserName: 'opera'             , platform: 'Windows 7' , version: ''   }
        , { browserName: 'ipad'              , platform: 'OS X 10.8' , version: '6'  }
        , { browserName: 'android'           , platform: 'Linux'     , version: '4.0', 'device-type': 'tablet' }
      ]

if (!user)
  throw new Error('Must set a SAUCE_USER env var')
if (!key)
  throw new Error('Must set a SAUCE_KEY env var')

brtapsauce({
    name         : 'Project Name'
  , user         : user
  , key          : key
  , brsrc        : path.join(__dirname, 'browserify.js')
  , capabilities : capabilities
})

Then in your package.json:

"scripts": {
  "test-local" : "brtapsauce-local test/browserify.js"
  "test"       : "test/sauce.js"
}

You can then use npm test to execute your tests on SauceLabs or use npm run-script test-local to start a local server that you can run local browsers on.

For CI (Travis, Drone.io or other), you just need to set the SAUCE_USER and SAUCE_KEY environment variables and let npm test do its thing.

Be aware that the first run will take longer as Sauce-Connect.jar is downloaded if it's not available. Also, the tests run in series due to a limitation in sauce-tap-runner.

License

brtapsauce is Copyright (c) 2013 Rod Vagg @rvagg and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.

npm loves you