wraith

A responsive screenshot comparison tool. Based on the Ruby version available at http://github.comm/BBC-News/wraith

Usage no npm install needed!

<script type="module">
  import wraith from 'https://cdn.skypack.dev/wraith';
</script>

README

Wraith

A responsive screenshot comparison tool. It can be used for regression testing or cross browser testing

Based on the Ruby version available at http://github.com/BBC-News/wraith

CLI app

Install

    npm install -g wraith

Usage

Usage:
wraith --config <config>

Options:
-h, --help				Output help information
-v, --version			Output version information
-c, --config [config]	Specify the location of the configuration file
-q, --quiet				All logging is hidden

Examples:
wraith --config ./config/chrome

Configuration file

Wraith uses a json based configuration file that allows you specify a large number of options. You can create as many configurations files as you need and call them from the cli using the --config flag.

Below is an example configuration file:

{
    Optional name for the project, if supplied it will be used within the generated
    gallery only
    "project": "Test",

    Specify one or two domains
    "domains": [
        "http://www.bbc.co.uk",
        "http://live.bbc.co.uk"
    ],

    Engines supported are phantomjs and slimerjs but in theory any phantomjs based
    headless browser can be supported.

    To do cross browser testing specify one domain and two engines or your choice
    "engines": [
        "phantomjs"
    ],

    Specify as many sizes as you wish. If no sizes are specified then the most
    popular sizes will be used based on the information provided by
    w3counter.com stats
    "sizes": [
        "320",
        "768",
        "1440"
    ],

    Output directory within the /shots directory
    "outputDir": "test/chrome/",

    You can specify a list of paths to be used or you can crawl the site.
    Note: If paths are provided they will take precedent and the spider file
    will be ignored.

    "paths": [
        "/",
        "/news/",
        "/news/local/",
        "/news/england/york_and_north_yorkshire/",
        "/weather/"
    ],

    If no paths are specified then a site crawl will take place and the results
    will be save in the location specified within this option
    "spider": "spider/test.txt",

    Limit the amount of concurrent processes
    "maxConnections": 20
}

API

This is very basic at the minute but you can use wraith within your applications.

At the minute there is only one option which is to run the application with a given config file and then run a specified callback but I am looking to expand this in the future.

npm install wraith --save-dev

var wraith = require('wraith');
var config = require('./config/chrome');

new Wraith(config, function() {
    console.log('Callback, do something else here!');
});

As the config is just an object you can change it at any point before calling
the wraith function e.g.

config.maxConnections = 10;
config.quiet = true;

new Wraith(config, function() {
    console.log('Callback, do something else here!');
});

License

MIT © James Bell