A plugin for adding visual regression test to Cypress using ODiff The fastest pixel-by-pixel image visual difference tool in the world.
ODiff Benchmarks are the main motivation for this. ๐
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({})
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:
cypress/screenshots/example.cy.js/passes.png and save it for further runscompareScreenshot accepts an options object with the following keys:
cy.screenshot() command to capture screenshot. see Cypress screenshot options docs.compare method from package. see ODiff Nodejs.| name | default | |
|---|---|---|
customSnapshotsDir | "cypress/snapshots" | should be under cypress directory. .expected, .actual, .diff screenshots will be saved under this path. |
updateSnapshots | undefined | if true, plugin will save the screenshot with .expected suffix and this image will be used for furthur visual regressions tests |
failOnExpectedMissing | undefined | if true the test will fail when .expected screenshot does not exist. This is particulary usefull when running test on ci. |
4 commits
TypeScript
96.8%
JavaScript
3.2%
A plugin for adding visual regression test to Cypress using ODiff The fastest pixel-by-pixel image visual difference tool in the world.
ODiff Benchmarks are the main motivation for this. ๐
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({})
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:
cypress/screenshots/example.cy.js/passes.png and save it for further runscompareScreenshot accepts an options object with the following keys:
cy.screenshot() command to capture screenshot. see Cypress screenshot options docs.compare method from package. see ODiff Nodejs.| name | default | |
|---|---|---|
customSnapshotsDir | "cypress/snapshots" | should be under cypress directory. .expected, .actual, .diff screenshots will be saved under this path. |
updateSnapshots | undefined | if true, plugin will save the screenshot with .expected suffix and this image will be used for furthur visual regressions tests |
failOnExpectedMissing | undefined | if true the test will fail when .expected screenshot does not exist. This is particulary usefull when running test on ci. |
4 commits
TypeScript
96.8%
JavaScript
3.2%