cypressによる画像比較を実施するために以下をinstall
npm i @types/cypress-image-snapshot cypress-image-snapshot
以下追加
cypress/support/commands.ts
/// <reference types="cypress" />
import { addMatchImageSnapshotCommand } from 'cypress-image-snapshot/command';
addMatchImageSnapshotCommand({
failureThreshold: 0.00,
failureThresholdType: 'percent',
customDiffConfig: { threshold: 0.0 },
capture: 'viewport',
});
公式にはcypress/plugins/index.tsに追加との記載があったが、
cypress v10ではpluginsではなくcypress.config.tsに記載するとのこと。
※実際この方法でないとエラーが発生していた。
cypress.config.ts
import { defineConfig } from "cypress";
import { addMatchImageSnapshotPlugin } from 'cypress-image-snapshot/plugin';
export default defineConfig({
e2e: {
setupNodeEvents(on, config) {
addMatchImageSnapshotPlugin(on, config);
},
},
component: {
setupNodeEvents(on, config) {
addMatchImageSnapshotPlugin(on, config);
},
},
});
あとはcypressのテストで以下を実行すればよい。
初回は比較元がないのでファイル作成し、成功する。
2回目からは前回ファイルとの比較を行い違いがあればエラーが発生する
cy.matchImageSnapshot();
さすがにリソース食うから頻繁にはできないが、
大事な部分で使えそう。