Native integration for Cypress with Visual Regression Tracker
Npm: https://www.npmjs.com/package/@visual-regression-tracker/agent-cypress
npm install @visual-regression-tracker/agent-cypress
<rootDir>/cypress/support/commands.js
import {
addVrtTrackCommand,
addVrtStartCommand,
addVrtStopCommand,
} from "@visual-regression-tracker/agent-cypress/dist/commands";
addVrtStartCommand();
addVrtStopCommand();
addVrtTrackCommand();
<rootDir>/cypress/plugins/index.js
const {
addVisualRegressionTrackerPlugin,
} = require("@visual-regression-tracker/agent-cypress/dist/plugin");
module.exports = (on, config) => {
addVisualRegressionTrackerPlugin(on, config);
};
<rootDir>/cypress.json
{
"env": {
"visualRegressionTracker": {
// URL where backend is running
// Required
"apiUrl": "http://localhost:4200",
// Project name or ID
// Required
"project": "Default project",
// User apiKey
// Required
"apiKey": "tXZVHX0EA4YQM1MGDD",
// Current git branch
// Required
"branchName": "develop",
// Log errors instead of throwing exceptions
// Optional - default false
"enableSoftAssert": true,
// Unique ID related to one CI build
// Optional - default null
"ciBuildId": "SOME_UNIQUE_ID",
}
}
}
Used only if not explicit config provided Is overriden if ENV variables are present
{
"apiUrl": "http://localhost:4200",
"project": "Default project",
"apiKey": "tXZVHX0EA4YQM1MGDD",
"ciBuildId": "commit_sha",
"branchName": "develop",
"enableSoftAssert": false
}
Used only if not explicit config provided
VRT_APIURL="http://localhost:4200"
VRT_PROJECT="Default project"
VRT_APIKEY="tXZVHX0EA4YQM1MGDD"
VRT_CIBUILDID="commit_sha"
VRT_BRANCHNAME="develop"
VRT_ENABLESOFTASSERT=true
cy.vrtStart();
All options
from screenshot
command are also supported more details
cy.vrtTrack("Whole page with default params");
cy.get("#navbar").vrtTrack("Separate element with default params");
cy.vrtTrack("Whole page with additional options", {
os: "MacOS",
device: "Cloud agent",
diffTollerancePercent: 1,
ignoreAreas: [{ x: 1, y: 2, width: 100, height: 200 }],
retryLimit: 2,
});
Viewport is taken from Cypress.config()
Browser is taken from Cypress.browser.name
cy.vrtStop();