需要保证赛普拉斯不会过早地通过测试

Need promise in order for Cypress not to pass test prematurely

我有以下简单测试:

describe("smoke test", () => {
  it("visit site", async () => {
    cy.visit(SITE_URL);

    return new Promise((resolve) => cy.contains("banner text").should("be.visible").then(resolve));
  });
});

Cypress 警告我没有必要 return 承诺。但是,如果我删除它,测试会立即通过,即使站点未启动也是如此:

describe("smoke test", () => {
  it("visit site", async () => {
    cy.visit(SITE_URL);

    cy.contains("banner text").should("be.visible");
  });
});

有没有更好的方法来修复这个测试?赛普拉斯的警告是错误的还是我的代码中有什么?

Cypress 已经在后台包含异步,代码中不需要它

describe("smoke test", () => {
  it("visit site", () => {
    cy.visit(SITE_URL);
    cy.contains("banner text").should("be.visible");
  });
});

如果您想在代码中执行异步操作,请使用 .then() 来处理 yielded promise。不要使用异步,等待,因为它们可能无法按预期工作... https://medium.com/@NicholasBoll/cypress-io-using-async-and-await-4034e9bab207