首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jest中的Resemblejs挂起

jest中的Resemblejs挂起
EN

Stack Overflow用户
提问于 2018-01-09 00:50:52
回答 2查看 228关注 0票数 0

我使用ResembleJS进行图像比较。当我在独立脚本中运行它时,我可以让它运行。代码如下:

代码语言:javascript
复制
    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运行测试,所以不确定是什么导致了这个问题。

EN

回答 2

Stack Overflow用户

发布于 2018-01-10 01:05:35

你能把你的测试代码贴出来吗?

您确定要从test块返回某些内容吗?为了使测试不挂起,您需要返回一个承诺,该承诺将在超时之前解决。下面是两个例子

代码语言:javascript
复制
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;


});
票数 0
EN

Stack Overflow用户

发布于 2019-02-27 03:10:43

我在使用Jest、React和Docker进行缓慢测试时遇到了类似的问题(但我没有使用Resemblejs)。

我在Github上找到了解决方案

我的解决方案是简单地将

"roots": ["./src"]添加到jest.config.js

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48154640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档