我使用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容器运行(这是来自docker集线器节点:8)。运行jest 22.0.4。
还有谁在一起运行这两个有问题吗?
我知道Resemblejs使用Jest运行测试,所以不确定是什么导致了这个问题。
发布于 2018-01-10 01:05:35
你能把你的测试代码贴出来吗?
您确定要从test块返回某些内容吗?为了使测试不挂起,您需要返回一个承诺,该承诺将在超时之前解决。下面是两个例子
test("test", () => {
// test is done when writeFile resolves
return new Promise((resolve, reject) => {
fs.writeFile("path", "encoding", (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
});
test("test", async function () {
// test is done after the assertion
const result = await fetch();
expect(result).toBe(); // test;
});发布于 2019-02-27 03:10:43
我在使用Jest、React和Docker进行缓慢测试时遇到了类似的问题(但我没有使用Resemblejs)。
我在Github上找到了解决方案
我的解决方案是简单地将
"roots": ["./src"]添加到jest.config.js
https://stackoverflow.com/questions/48154640
复制相似问题