Travis CI Fail Jest测试超时原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Travis CI Fail 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进行测试,使用Is(对于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是毫秒。在描述之前添加文件顶部。

以上是关于Travis CI Fail Jest测试超时原因的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有超时的情况下在 Travis CI 上安装一些东西?

Swift 测试在本地通过,但在 Travis-CI 上构建失败

Travis-CI 可以运行 Codeception 测试吗?

[travis-ci]自动集成测试

Travis CI 构建失败,因为没有输出

Travis CI 跳过测试(Gradle Android 项目)