Home

Awesome

Cypress ODiff

A plugin for adding visual regression test to Cypress using ODiff The fastest pixel-by-pixel image visual difference tool in the world.

Why?

ODiff Benchmarks are the main motivation for this. 🚀

Getting Started

Install:

$ npm install cypress-odiff

Add the plugin

const { addCompareScreenshotPlugin } = require('cypress-odiff')

module.exports = defineConfig({
  trashAssetsBeforeRuns: false, // needed to avoid deleting expeted screenshot
  e2e: {
    setupNodeEvents (on, config) {
      addCompareScreenshotPlugin(on, config)
    }
  }
})

Add the command in support/commands.js

const { addCompareScreenshotCommand } = require('cypress-odiff')

addCompareScreenshotCommand({})

Using in Tests

Given the following test case under cypress/e2e/example.cy.js

describe('example', () => {
  it('passes', () => {
    cy.visit('https://example.cypress.io')
    cy.compareScreenshot()
  })
})

the command compareScreenshot will:

Options

compareScreenshot accepts an options object with the following keys:

Plugin Options

namedefault
customSnapshotsDir"cypress/snapshots"should be under cypress directory. .expected, .actual, .diff screenshots will be saved under this path.
updateSnapshotsundefinedif true, plugin will save the screenshot with .expected suffix and this image will be used for furthur visual regressions tests
failOnExpectedMissingundefinedif true the test will fail when .expected screenshot does not exist. This is particulary usefull when running test on ci.