首页 > 解决方案 > 我可以打开 cy.wait() 超时而不是断言失败吗?

问题描述

我有一个柏树测试,它突出了冷启动 lambda 的问题。但是,在证明问题后,我希望测试通过,处理冷启动并重试,直到冷启动问题得到解决。

如果我cy.wait()不能抛出失败断言(因此不停止测试),我可以打开 xhr 响应的状态以在 x 时间内尝试。例如;

context("upload trades", () => {
    specify("handling cold-start delay", () => {
      // attempt system action which will "warm up" cold lambdas
      cy.uploadTradeForTomorrow("validTrade_CME_to_KochCE");

      // implicitly wait for timeout to occur when posting trade list
      cy.wait("@postTradeLists").then(request => {
        // handle cold start
        if (request.status !== 200) {
          cy.log(
            "non-200 response; assuming cold start, adding delay and trying again"
          );
          cy.wait(30000);

          // refresh page to re-load Trade Uploads page
          // given lambda's now hot
          cy.visit("/");

          cy.uploadTradeForTomorrow("validTrade_CME_to_KochCE");

          // wait for second post, anticipating 200 response (hot-start)
          cy.wait("@postTradeLists");
        }
      });

      // check file uploaded successfully
      cy.contains("File uploaded successfully").should("be.visible");
      cy.get("button")
        .contains("OK")
        .should("be.enabled");
    });
  });

cy.wait("@postTradeLists")但是,当 504 响应(或者更可能是 30000 毫秒超时)从服务器解决时,这目前在线上失败。

有没有办法做到这一点,我不知道?过度的谷歌搜索不会产生任何结果。谢谢你。

标签: javascripttestingcypress

解决方案


推荐阅读