gpt4 book ai didi

javascript - 无法为 Jasmine 设置超时

转载 作者:数据小太阳 更新时间:2023-10-29 04:40:05 29 4
gpt4 key购买 nike

我已经尝试了 this answer 中的所有解决方案但它们都不适合我。

我正在使用 jasmine v2.3.2jasmine-core v2.3.4

当我做这个测试时:

jasmine.DEFAULT_TIMEOUT_INTERVAL= 999999;

describe('tests content controller', function(){
//...

fit('/content should return 200',function(done){
request(app)
.get('/content?type=script')
.set('Authorization', "bearer " + requestor.token)
.set('Accept', 'application/json')
.expect(200)
.end(function (err, res) {
if (err) done.fail(err);
expect(res.statusCode).toBe(200);
console.log('got here');
console.log(jasmine.DEFAULT_TIMEOUT_INTERVAL); //prints 30000
done();
})
},999999);

我在控制台上看到请求只用了 3000 毫秒。我什至看到了我的 got here 日志。

显示超时的日志打印出 30000 而不是我预期的 999999

我也收到此测试失败的消息:

Message:
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 Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
1 spec, 1 failure
Finished in 33.069 seconds

有一些初始设置导致了大约 30 秒的大部分延迟。应用程序必须连接到多个数据库并运行 describe 中的 beforeAll 函数。

我怎样才能防止 jasmine 像这样超时?

最佳答案

尝试在 beforeAll 中设置 jasmine.DEFAULT_TIMEOUT_INTERVAL,因为每个 it block 都会重置超时间隔:

describe("testing timeout", function() {
beforeAll(function() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 999999;
});

fit('should have custom timeout', function(){
console.log(jasmine.DEFAULT_TIMEOUT_INTERVAL); //prints 999999
});
})

此外,请记住 setTimeout 使用 32 位整数来存储幕后延迟,因此超过此值的整数值会导致溢出。看这篇文章: Infinite jasmine timeout

关于javascript - 无法为 Jasmine 设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34665214/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com