cy.wrap() 在 mailosaur 中等待 4000 毫秒超时

时间:2021-03-08 06:50:18

标签: javascript cypress

我在调用 cy.mailosaurGetMessage 时遇到 CypressError:cy.wrap() 超时等待 4000 毫秒完成。

请查找附件中的错误图片。 enter image description here

请在下面找到代码片段:`

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');
        })
    })
})

`

1 个答案:

答案 0 :(得分:3)

看一下屏幕截图的顶部,有一个 timeout: 100010000 - 这对于超时数字来说真的很奇怪

ma​​ilosaurCommands.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 解析的地方受到了它的影响。

相关问题