Travis CI Fail Jest测试超时原因

时间:2017-12-20 20:16:46

标签: node.js timeout travis-ci yeoman jest

确切的错误消息是:

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');
});

如果您有想法或解决方案,您将节省我的一天 感谢。

1 个答案:

答案 0 :(得分:3)

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

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

使用该信息,运行:

jest --runInBand

解决了我的问题。

编辑1:

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

jest.setTimeout(10000);

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