Я использую nodeJS с mocha и chai и, что важно, pixelmatch.
Я сделал скриншоты и сделал их резервную копию.Я хочу сравнить их и создать папку diff с различиями, используя pixelmatch.Я продолжаю получать ошибку.
"TypeError: "listener" argument must be a function"
Ошибка относится к 0,66:
img1 = fs.createReadStream(screenshot_path).pipe(new PNG()).on('parsed', doneReading())
Вот мой код скриншота сравнения:
const compareScreenshots = async (path) => {
const diff_path = "./build/diff/" + path + ".diff.png"
const screenshot_path = "./build/" + path + ".png"
const backup_path = "./backup/" + path +".png"
let img1, img2, filesRead = 0;
let doneReading = async function(){
if(++filesRead < 2) return;
var diff = new PNG({width: img1.width, height: img2.height});
var numDiffPixels = pixelmatch(img1.data, img2.data, diff.data, img1.width, img1.height, {threshold: 0.1})
diff.pack().pipe(fs.createWriteStream(diff_path));
expect(numDiffPixels).to.equal(0) }
img1 = fs.createReadStream(screenshot_path).pipe(new PNG()).on('parsed', doneReading())
img2 = fs.createReadStream(backup_path).pipe(new PNG()).on('parsed', doneReading())
}
входной путь:
let page_title = await page.$eval('title', page => page.textContent.replace(/ /g,''))