为什么 defaultCommandTimeout 在我的脚本中不起作用

0 javascript typescript cypress

我知道有一个在 cypress.json 文件中添加的解决方案defaultCommandTimeout,但我不想在整个测试框架中到处添加等待。

我只需要等待一个特定元素。

    add.getCountry().type('India');
    Cypress.config('defaultCommandTimeout', 10000);
    add.selectCountry().click();
Run Code Online (Sandbox Code Playgroud)

赛普拉斯结果:

柏树结果

小智 5

更改超时的更好方法是在测试标头中,如下所示:

it('tests my slow suggestion form', {defaultCommandTimeout: 10_000}, () => {
  // test code that relies on 
})
Run Code Online (Sandbox Code Playgroud)

这样测试中的任何命令都会看到更长的超时。

更好的是,添加一个cy.intercept()模拟响应来绕过缓慢的 API 调用。这样,您就不必担心超时,因为标准 4 秒就可以正常工作,并且您的测试将运行得更快。