Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including nemo-saucelabs with all npm packages installed. Try it out:

require("nemo/package.json"); // nemo is a peer dependency. var nemoSaucelabs = require("nemo-saucelabs")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

nemo-saucelabs v5.0.1

updates Sauce Labs jobs with test information and test results

nemo saucelabs

nemo.js integration with Saucelabs.com

npm Dependency Status Code Climate License

This plugin exposes methods to update the metadata of running Sauce Labs job, e.g. Test Name, Test tags, Build Id and Test result (Pass/Fail) on Sauce Labs dashboard. It also exposes a method to get Job URL to print on your test reports. Once nemo-saucelabs plugin is registered, you will have nemo.saucelabs object available.

This is v3 of this plugin, which requires as a peer dependency nemo@^3.0.0-alpha.6, which in turn required node v6 or later

Installation and usage

Use npm to install nemo-saucelabs into your project:

npm install --save-dev nemo-saucelabs@^3.0.0

for Cucumber 2, install >v5.0.0. Mocha is supported as is.

npm install --save-dev nemo-saucelabs@^5.0.1

Then, define the nemo-saucelabs plugin in your config/config.json under plugins section and specify Sauce Labs username and accessKey under serverCaps section:

  "plugins": {
    "saucelabs": {
      "module": "nemo-saucelabs"
    }
  },
  "driver": {
    "browser": "chrome",
    "server": "http://sauce-username:8ab3d84c-859c-41fb-3266-cff489be9862@ondemand.saucelabs.com:80/wd/hub",
    "serverCaps": {
      "username": "sauce-username",
      "accessKey": "sauce-access-key", // not a real access key
      "platform": "MAC",
      "version": "27.0"
    }
  }

Methods

1. Update Sauce Labs Job: updateJob(data)

request fields:

name:           [string] update the job name,
cucumber_tags:  [scenario.getTags()] nemo-saucelabs will traverse cucumber tags and get tag names to update the job tags
tags:           [list of strings] array of tags to update the job tags,
build:          [int] The build number being tested,
custom-data:    [JSON] a set of key-value pairs with any extra info that a user would like to add to the job. Max 64KB.

example:

var options = {
  name: scenario.getName(),
  cucumber_tags: scenario.getTags(),
  build: build_id,
  custom-data: {
    testInfo: 'information about test or cause of test failure...'
  }
};

nemo.saucelabs.updateJob(options)
  .then(function() { /* process success results */ })
  .catch(function(err) { /* process error */ });
2. Update Sauce Labs Job Result: isJobPassed(isPassed)

request fields:

passed: [boolean]

example:

var isPassed = test.isPassed();
nemo.saucelabs.isJobPassed(isPassed)
  .then(function() { /* process success results */ })
  .catch(function(err) { /* process error */ });
3. Get Sauce Labs Job URL: getJobUrl()

example:

nemo.saucelabs.getJobUrl()
  .then(function(url) { /* do something with url e.g. `console.log` */ })
  .catch(function(err) { /* process error */ });
// example saucelabs url: https://saucelabs.com/tests/153a38fac7ab48869e7b3b9c3c567665
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free