在赛普拉斯中运行测试的所有断言

时间:2020-06-30 11:38:03

标签: testing automated-tests cypress ui-testing

我对测试结构有疑问。 docs明确声明要编写具有多个声明的测试,而不是具有单个声明的多个测试。

但是,如果我想测试多个元素是否可见,则如果第一个元素不可见,则测试将失败,因此我对其他元素一无所知。我有什么办法可以运行所有断言?

it("Page should show two actions", () => {
  cy.visit("users/list");
  cy.get("[data-cy=createUser]")
    .should("be.visible")
    .and("have.text", "Create user");
  cy.get("[data-cy=exportUserData]")
    .should("be.visible")
    .and("have.text", "Export data");
});

2 个答案:

答案 0 :(得分:0)

要运行所有断言,必须确保元素可见。通常,在运行cypress的过程中,使用此函数cy.wait(2000)

会花费一些时间在所有可以等待的声明之间加载所有内容。

答案 1 :(得分:0)

显然,我只是没有找到正确的措词。当然,它被称为soft assertion,而不是内置于Cypress中,实际上违背了Chai的主张哲学。 尽管我确实找不到赛普拉斯(Cypress)或柴(Chai)的官方文档,可以告诉我为什么他们反对软断言。

您可以做的是:

  • 使用soft-assert所述的npm软件包here
  • 按照here的要求自己实施(可能会破坏赛普拉斯的重试/超时机制)