因果断开,因为在10000毫秒内没有消息

时间:2019-02-18 09:58:34

标签: angular typescript jasmine karma-runner typescript-namespace

Karma测试套件失败,并显示以下消息:

  

已断开连接,因为在10000毫秒内没有消息。

根本不执行任何测试。

"@angular/core": "7.1.3",
"jasmine-core": "3.3.0",
"karma-jasmine": "1.1.2",

没有明显的失败原因,它只是在引入新测试之后才开始的。

6 个答案:

答案 0 :(得分:1)

--module中TypeScript的tsconfig.spec.json编译器选项设置为commonjs时,因果报应在执行任何测试之前在内部失败,并显示上面的超时错误。

导入顺序可能会使Karma失败:

import CustomerTypeEnum = CustomerDto.CustomerTypeEnum;
import {CustomerDto} from '../api/CustomerDto';

此订单可以正常运行:

import {CustomerDto} from '../api/CustomerDto';
import CustomerTypeEnum = CustomerDto.CustomerTypeEnum;

还可以通过将模块编译器选项更改为例如来解决此问题。 es2015

答案 1 :(得分:1)

对我来说失败了,因为我在组件中设置了window.location.href,但是测试只是在随机时间挂起,而不是对组件失败。

答案 2 :(得分:0)

我遇到了同样的问题,并尝试了所有方法-除了将此选项添加到我的karma.conf.js中之外,任何方法都无效

browserNoActivityTimeout: 400000

答案 3 :(得分:0)

我在Chrome 85.0.4183上遇到了类似的问题。 我不知道为什么业力失去与浏览器的连接,我得到了 “已断开连接,因为在30000毫秒内没有消息。”

我已将其添加到Karma.conf:

captureTimeout: 210000,
browserDisconnectTolerance: 3, 
browserDisconnectTimeout : 210000,
browserNoActivityTimeout : 210000

现在可以了,希望对您有帮助

答案 4 :(得分:0)

检查karma的日志,当测试文件有编译错误时,karma服务器返回超时错误而不是真正的错误

答案 5 :(得分:-2)

您可以将其添加到比茉莉花默认时间更长的时间。

  beforeEach(async(() => {
    jasmine.DEFAULT_TIMEOUT_INTERVAL = <whatever time your test need to complete>;
  }));

,如果此方法无效,您也可以检查此答案。 https://stackoverflow.com/a/37969873/1931563