2.3.1 • Published 2 years ago
@telus/nightwatch-visual v2.3.1
Nightwatch VISUAL 
Screenshot comparison assertion for Nightwatch.js
Description
This custom assertion allows you to easily integrate visual regression testing into a Nightwatch test suite.
It uses resemble.js to compare your code change against your approved baseline screenshots of your application.
Installation
# using npm
npm install --global @telus/build-essential
npm install --only-production --save @telus/nightwatch-visualUsage
Update your nightwatch config:
{
  custom_assertions_path: [
    './node_modules/@telus/nightwatch-visual/assertions',
    './node_modules/@telus/nightwatch-visual/commands'
  ]
}...
  "test_settings": {
      "nightwatch_visual": {
        "visualTesting": "enabled"
        "defaultSelector": "html",
        "defaultTolerance": 3,
        "defaultPath": "./nightwatch-visual"
      },Mount your screenshot folder in your Dockerfile
RUN chmod -R g+w /app/tests/nightwatch-visual \Use in your tests:
module.exports = {
  Test: function(browser) {
    browser.assert.compareScreenshot(fileName, selector, tolerance, path)
  }
}| Parameter | Default | Description | 
|---|---|---|
| fileName | browserName_browserVersion_testName.png | Customized output when multiple screenshots on the same test: browserName_browserVersion_fileName.png | 
| selector | 'html' | CSS selector of the targeted component the assertion is ran against | 
| tolerance | 3 | % of difference between the baseline and result images from which the assertion will fail | 
| path | 'path.join(__dirname, '../nightwatch-visual'' | Folder where to save screenshots. Usefull especially when running with Docker | 
Workspace Structure
Screenshots will be saved in the \nightwatch-visual\your-test-name\ folders
.
├── nightwatch-visual
│   └── testName
│       ├── baseline
│       │   └── browserName_browserVersion_testName.png
│       ├── diffs
│       │   └── browserName_browserVersion_testName.png
│       └── results
│           └── browserName_browserVersion_testName.png
├── test
│   └── specs
│       └── testName.js
└── ...Workflow
- Taking screenshot
- Create new folders if not exist
- Creating baseline files if not exist
- Comparing images
- Return assertion result
:copyright: TELUS digital • License: ISC • Github: @telus • Twitter: @telusdigital