首页 > 解决方案 > 为赛普拉斯期望断言设置超时

问题描述

我的问题是我想对赛普拉斯库的期望断言超时,但似乎无法找到这样做的方法。

我已经尝试大大增加 cypress.conf 中的全局超时;然而,这并没有奏效。

if ($widget.find('report-widget')) {
  SVGCount++;
  expect(barGraphsChange[index]).to.not.equal(undefined)
  console.log(barGraphsChange, index)
  cy.getBarGraphTotal(SVGCount, barGraphsChange[index])
}

如果不是超时,那么一个合理的解决方法也会很好,谢谢!

另请注意: barGraphsChange[index] 在此阶段早些时候正在从调用的自定义赛普拉斯命令进行计算和分配。

标签: javascripttimeoutcypress

解决方案


您可以使用 自定义您的期望should(),这将自动重试您的断言,无论是指定的超时时间,还是全局 defaultCommandTimeout(如果没有提供)。在您的情况下,我可能会想象包装您的对象,指定超时,然后将您的逻辑传递给应该:

cy.wrap(someFunction, {timeout: 25000}).should(someFunction => expect(someFunction()).to.eq(someValue))

在此处阅读更多信息:https ://docs.cypress.io/api/commands/should.html#Function


推荐阅读