画像比較にはResembleJSを使用しています。スタンドアロン スクリプトで実行すると、実行できます。コードは次のとおりです。
var compareImages = require('resemblejs/compareImages');
var fs = require('fs');
var path = require('path');
// The parameters can be Node Buffers
// data is the same as usual with an additional getBuffer() function
async function getDiff() {
var img = path.join(__dirname, 'small.jpg');
const data = await compareImages(
fs.readFileSync(img),
fs.readFileSync(img)
);
console.log(data);
fs.writeFileSync('./output.png', data.getBuffer());
}
getDiff();
すべてが期待どおりに機能します。
しかし、jest フレームワークを使用してテスト内で比較を実行すると、ハングし、最終的にタイムアウトになります。最初は、実行速度が非常に遅いだけかもしれないと思ったので、冗談で最大タイムアウトを 1 分に設定しました。それでも失敗しました。そこで、テスト画像を 1 ピクセルに設定して、最も簡単なテストにします。それでも終わりません。
Node 8.9.4 (docker ハブ node:8 からのもの) を使用して docker コンテナーから実行します。jest 22.0.4 を実行しています。
これら2つを一緒に実行する際に問題がある人は他にいますか?
Resemblejs が Jest でテストを実行することは知っているので、何が問題を引き起こしているのかわかりません。