我在调用 cy.mailosaurGetMessage 时遇到 CypressError:cy.wrap() 超时等待 4000 毫秒完成。
请在下面找到代码片段:`
describe('Password reset', () => {
const serverId = 'u7ob3rfc1';
const testEmail = 'uma@u7ob3rfc1.mailosaur.net'
it('Gets a link blocked email', () => {
console.log("inside")
cy.mailosaurGetMessage(serverId, {
sentTo: testEmail,
}).then(email => {
receivedAfter: new Date('2020-03-06T00:00:00Z')
console.log(email.subject)
expect(email.subject).to.equal('Click Blocked');
})
})
})
`
答案 0 :(得分:3)
看一下屏幕截图的顶部,有一个 timeout: 100010000
- 这对于超时数字来说真的很奇怪
在 mailosaurCommands.js
中查看 mailosaur 库中的这段代码cy.wrap(new Cypress.Promise((resolve, reject) => {
fn(resolve, reject)();
}), {
log: false,
timeout: options.timeout + 10000
});
用户给出的超时时间增加了 10 秒,除了您的测试设置 options.timeout
是一个字符串而不是数字,在上面的屏幕截图中给出了超大而奇怪的超时时间。
所以你用过的地方
timeout: '1000'
但是你应该使用
timeout: 1000
为什么会出现这个问题?
上面的 cy.wrap()
包含一个 Promise,它必须在 Cypress 继续之前解决或拒绝。但它既不解决也不拒绝这就是为什么你得到
cy.wrap() 超时等待 4000 毫秒完成。
我认为这也可能是由于超时不正确,不调试很难判断,但至少有一个 Promise 解析的地方受到了它的影响。