node.js - Travis CI Fail Jest 超时原因测试

标签 node.js timeout travis-ci yeoman jestjs

确切的错误信息是:

Timeout - Async callback was not invoked within timeout  
specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

起初,只有 Node.js 4 版本构建失败。
添加更多测试后,所有 Node.js 版本构建都被破坏了(4、6、7、8)。

我使用 Travis CI 进行测试,并使用 Jest(用于 Yeoman 生成器)。

您可以查看 job log如果需要,错误消息。

尝试过:

设置一个新的超时值。

let originalTimeout;

describe('generator-cozen-angular:sub-task', () => {
    beforeEach(() => {
        originalTimeout                  = jasmine.DEFAULT_TIMEOUT_INTERVAL;
        jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
    });

    afterEach(() => {
        jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
    });

    it('do some stuff');
});

如果你有想法或解决方案,你会拯救我的一天。
谢谢。

最佳答案

我刚刚通过阅读 Jest 文档找到了解决方案。

由于错误仅出现在 Travis CI 中,我认为他们的服务器只是比我本地的服务器慢。

有了这些信息,运行:

jest --runInBand

解决了我的问题。

编辑 1:

通过添加更多测试,我再次遇到了这个问题。
找到的另一个解决方案是更改 Jest 超时。

jest.setTimeout(10000);

10000 是毫秒。 在描述之前添加到文件顶部。

关于node.js - Travis CI Fail Jest 超时原因测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47913762/

相关文章:

node.js - 高性能 API 可处理许多请求

node.js - Uglify Minify 并使用 Gulp 生成 source map

objective-c - 为什么 NSURLConnection 在发送大量请求时会超时?

bash 仅针对用户输入的第一个字符读取超时

git - Travis 从单个仓库构建多个 Docker 镜像

node.js - Node Async forEach - 如何通过键而不是值进行迭代

php - 有没有办法在 php 中使用 Node js 库?

python - pytest 和 codecov : no coverage report found

python - Python 中的 session 超时

python - 特拉维斯建立。导入错误 : No module named gdal