我的集成测试中有before
,如下所示:
let response = null
before('read data', done => {
request(
{
uri: 'some/endpoint'
}
)
.then(resp => {
response = fromJS(resp)
done()
})
.catch(e => {
done(e)
})
})
测试正在对响应中的内容进行检查,并且在我的机器上完全正常传递,之前在推送服务器时也正在通过。但是,最近服务器上的测试开始失败,出现timeout of 2000ms exceeded
错误。我确信请求的时间不到500毫秒,所以这真的很奇怪。谷歌搜索一段时间并尝试一些建议后,我找到了解决方法。这段代码工作正常:
let response = null
before('read data', async () => {
response = fromJS(
await Promise.resolve(
request(
{
uri: 'some/endpoint'
}
)
)
)
})
我想知道的是,我的旧方法有什么问题?什么花了这么多时间来请求?
错误是:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.