A visual regression testing library built on Puppeteer for comparing website screenshots against reference images.
Differencify is a visual regression testing library that helps developers ensure UI consistency by comparing screenshots of web pages against reference images. It automates browser interactions using Puppeteer and integrates with testing frameworks like Jest to detect unintended visual changes during development. The tool is designed to catch UI regressions before they reach production.
Frontend developers, QA engineers, and DevOps teams who need automated visual testing for web applications, particularly those using Jest or Puppeteer in their workflow.
Developers choose Differencify for its seamless Puppeteer API compatibility, Jest integration, and deterministic testing via request mocking, making it a reliable and easy-to-adopt solution for visual regression testing in CI/CD pipelines.
Differencify is a library for visual regression testing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Fully matches Puppeteer's API, allowing developers to use familiar methods for browser automation and screenshot capture without a learning curve, as stated in the README under 'Puppeteer Integration'.
Integrates natively with Jest for automatic validation and snapshot updates via --updateSnapshot flag, mirroring Jest's snapshot testing for seamless adoption, shown in the 'Usage with Jest' section.
Uses Mockeer to isolate browser requests, ensuring consistent visual results by mocking unstable API dependencies, which is highlighted in the 'Mocking browser requests' section for reliable tests.
Provides a Docker base image and configuration options for simplified setup in continuous integration environments, making it easy to run tests locally or in CI pipelines, as mentioned under 'Docker Support'.
Built solely on Puppeteer, it only supports Chrome/Chromium, limiting cross-browser visual regression testing without additional tools or workarounds for Firefox or Safari.
Requires Node v7.6.0 or greater and uses async/await, excluding teams on legacy Node.js versions or those unable to upgrade due to system constraints, as noted in the installation instructions.
Stores multiple image versions (reference, current, differencified) by default, which can consume significant disk space and slow down test execution with large or frequent test suites, as configured in GlobalOptions.