Travis CI 由于超时原因导致 Jest 测试失败

Travis CI Fail Jest testing for Timeout reason

确切的错误信息是:

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 是毫秒。 在描述之前添加到文件顶部。