1.1.2 • Published 4 years ago

@jungvonmatt/visual-test v1.1.2

Weekly downloads
-
License
-
Repository
github
Last release
4 years ago

JvM Visual Regression Tester

Automates visual regression testing of our projects by comparing DOM screenshots over time. Convinience wrapper around BackstopJS.

Browser report

Getting started

Install

npm i @jungvonmatt/visual-test

Usage

Initialize project

visual-test reference

Run tests

visual-test test

Approve tests

visual-test approve

You can optionally add query parameters to the requests with the --query argument

visual-test test --query 'optimize-css=1&debug=true'

You can specify a custom config directory using the --config-dir option

visual-test test --config-dir ~/.my-visualtest-directory

Or just call with the url to the sitemap

visual-test test https://www.jvm.com/sitemap.xml

Add projects

To add a projects you need to place a config file in one of the following locations:

  • In a custom path specified by --config-dir
  • In the current working directory

Name: project.visualtest.config.js

Configuration

Config values

KeyDescription
nameProject name
environmentsEnvironment config. See below.
urlsArray with urls or async function returning the urls to test.

Environment Config values

KeyDescription
nameEnvironment name
hostHostname
userRFC2617 basic authorization: user
passRFC2617 basic authorization: pass
baseBase directory on host
sitemapPath to sitemap

Examples

Minimal example

module.exports = {
  environments: [
    {
      name: 'Production',
      host: 'https://www.example.com',
      sitemap: '/sitemap.xml',
    },
  ],
};

Static urls

module.exports = {
  environments: [
    {
      name: 'Production',
      host: 'https://www.example.com',
    },
  ],
  urls: ['index.html', 'imprint.html'],
};

With urls function

module.exports = {
  environments: [
    {
      name: 'PREVIEW (EN)',
      host: 'http://preview.example.com',
      base: '/en',
      user: '',
      pass: '',
      sitemap: '/en/sitemap.xml',
    },
    {
      name: 'PROD',
      host: 'https://www.example.com',
      sitemap: '/sitemap.xml',
    },
  ],
  urls: async (environment) => {
    // The urls from the sitemap are available here
    const { urls } = environment || {};
    return urls.filter((url) => /regex/.test(url));
  },
};

Can I contribute?

Of course. We appreciate all of our contributors and welcome contributions to improve the project further. If you're uncertain whether an addition should be made, feel free to open up an issue and we can discuss it.

License

MIT