【问题标题】:Travis CI Fail Jest testing for Timeout reasonTravis CI 因超时原因导致 Jest 测试失败
【发布时间】:2018-06-03 11:16:34
【问题描述】:

确切的错误信息是:

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

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

【问题讨论】:

  • 可能需要更多关于正在运行的测试的上下文。很可能您的测试没有正确执行,并且异步回调永远不会运行。
  • 本地测试完全没问题,正常吗?

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


【解决方案1】:

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

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

有了这些信息,运行:

jest --runInBand

解决了我的问题。

编辑 1:

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

jest.setTimeout(10000);

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

【讨论】:

猜你喜欢
  • 2019-11-02
  • 2016-06-08
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多