@rosen-group/visualreview-protractor

Provides an API to send screenshots to VisualReview from Protractor tests.

Usage no npm install needed!

<script type="module">
  import rosenGroupVisualreviewProtractor from 'https://cdn.skypack.dev/@rosen-group/visualreview-protractor';
</script>

README

VisualReview API for Protractor

Provides an API to send screenshots to VisualReview from your Protractor tests. See the example for a quick demo.

Requirements

Requires Protractor 1.4.0 or higher.

Getting started

First add visualreview-protractor to your protractor project's dependencies.

npm install @rosen-group/visualreview-protractor --save-dev

Then configure visualreview-protractor in your protractor configuration file. Here's an example:

const VisualReview = require('@rosen-group/visualreview-protractor');
var vr = new VisualReview({
  hostname: 'localhost',
  port: 7000,
  scheme: 'https', //(optional: http|https, http is used if not specified)
  strictSSL: true, //(optional: true|false, disable ssl certificate check, true if not specified)
  catchErrors: false //(optional: true|false, disable error throwing to not influence the test progress in case of vr errors, false if not specified)
});

exports.config = {

  [..],

  /*
      Both .initRun and .cleanup return a q-style promise. If you have some
      other things happening in before- and afterLaunch, be sure to
      return these promise objects.
  */
  beforeLaunch: function () {
      // Creates a new run under project name 'myProject', suite 'mySuite'.
      // Since VisualReview version 0.1.1, projects and suites are created on the fly.
      return vr.initRun('myProject', 'mySuite');

      // Additionally you can provide the branchName this run has been initiated on.
      // This defaults to "master". Uses this to create a baseline for a specific feature branch
      // Note that this feature requires VisualReview server version 0.1.5 or higher.
      // For example:
      // return vr.initRun('myProject', 'mySuite', 'my-feature-branch');
  },

  afterLaunch: function (exitCode) {
      // finalizes the run, cleans up temporary files
      return vr.cleanup(exitCode);
  },

  params: {
      visualreview: vr // provides API to your tests
  }
}

Now you can use the visualreview-protractor API in your tests. For example:

var vr = browser.params.visualreview;
describe('angularjs homepage', function() {
  it('should open the homepage', function() {
    browser.get('https://docs.angularjs.org');
    vr.takeScreenshot('AngularJS-homepage');
  });
});

Config

The VisualReview accepts a config object such as:

{
  hostname: 'localhost',
  port: 7000,
    scheme: 'https', //(optional: http|https, http is used if not specified)
    strictSSL: true, //(optional: true|false, disable ssl certificate check, true if not specified)
    catchErrors: false //(optional: true|false, disable error throwing to not influence the test progress in case of vr errors, false if not specified)
}

Other options are:

  • disabled, default false, a boolean value whether to disable the actual calls to the VisualReview object.
  • propertiesFn, a function with a capabilities argument that is used to uniquely identify a screenshot. For example the following configuration omits the browser version as a screenshot identifying property:
propertiesFn: function (capabilities) {
    return {
      'os': capabilities.get('platform'),
      'browser': capabilities.get('browserName')
    };
  }
  • compareSettings, to define the precision of each pixel comparison. The value '0' will result in a failure whenever a difference has been found. Default '0'. This feature requires VisualReview server version 0.1.5 or higher.
compareSettings: {
    precision: 7
}

License

Copyright © 2015 Xebia

Distributed under the Apache License 2.0.

Fork

This is a fork of the original GitHub repository (https://github.com/xebia/VisualReview-protractor) to add some configuration properties and to consume these changes from npm.