Karma测试套件失败,并显示以下消息:
已断开连接,因为在10000毫秒内没有消息。
根本不执行任何测试。
"@angular/core": "7.1.3",
"jasmine-core": "3.3.0",
"karma-jasmine": "1.1.2",
没有明显的失败原因,它只是在引入新测试之后才开始的。
答案 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