我正在超时-在jasmine指定的超时内未调用异步回调。DEFAULT_TIMEOUT_INTERVAL错误

Par*_*thi 1 jasmine

信息:

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

  Stack:
     Error: Timeout - Async callback was not invoked within timeout   
      specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
        at ontimeout (timers.js:365:14)
        at tryOnTimeout (timers.js:237:5)
        at Timer.listOnTimeout (timers.js:207:5)
Run Code Online (Sandbox Code Playgroud)

Fju*_*jut 6

jasmine.DEFAULT_TIMEOUT_INTERVAL是Jasmine将it在抛出超时错误之前等待一个块的时间(以毫秒为单位)。

超时错误可能表示您的代码有问题或只是需要花费更多时间才能运行。如另一个答案中所述,您可以增加全局茉莉花超时间隔,或者对于单个测试,可以这样设置超时:

const myTestTimeout: number = 2 * 60 * 1000; //explicitly set for readabilty

it('should validate something', (() => { ...your test code }), myTestTimeout);
Run Code Online (Sandbox Code Playgroud)

我的方法是增加特定测试的超时时间,以确保测试有足够的时间(例如3分钟)。如果测试再次失败,则可以确定错误原因是代码中的问题。


Opt*_*rks 5

增加 jasmin 默认时间间隔。您将以下代码添加到 conf.js 文件中。

代码:

    jasmineNodeOpts: {
      showColors: true,
      includeStackTrace: true,
      defaultTimeoutInterval: 1440000
     }
Run Code Online (Sandbox Code Playgroud)