【问题标题】:Cypress assertion fails but test is marked passed (green checkbox) in the Cypress UI. Is this expected?赛普拉斯断言失败,但在赛普拉斯 UI 中将测试标记为通过(绿色复选框)。这是预期的吗?
【发布时间】:2021-09-03 04:31:25
【问题描述】:

即使断言失败,赛普拉斯测试似乎也标有绿色复选框。有人遇到过吗?

我尝试将 Cypress.on("fail", (err, runnable) => { return false; }); 添加到 cypress/integration/support 文件夹中的 index.js 文件中,但没有帮助。

这是一个显示问题的简单测试。如果您运行测试,您应该会在 Cypress 运行器中看到一个绿色复选框,但如果您扩展测试以查看每个步骤,您将看到红色的失败断言:

describe('fail intentionally', () => {

    it('should fail when some random element that does not exist on page is asserted', () => {
        cy.visit('https://www.google.com');
        cy.get('[name=btnK]').should('be.visible');
        cy.get('[name=totallyfake12345').should('be.visible') //expected to not be on the page

    });
});

image showing Cypress UI view after running above test

【问题讨论】:

    标签: cypress


    【解决方案1】:

    对我来说,Cypress.on("fail", (err, runnable) => { return false; }) 行实际上导致了问题。

    如果我将其注释掉,测试会按预期失败

    只是说明为什么应用此事件修饰符很危险。

    如果要避免应用错误,最好只应用一次

    Cypress.once("fail", (err, runnable) => { return false; })
    

    【讨论】:

    • 谢谢。它对我有用。我的 index.js 中最初没有这行代码,并且仍然会出现绿色复选框以表示失败。但是,我正在与之抗争的测试今天已更改了无数次,并且在编写 google 示例之前我没有想到将其删除。希望有人能从中吸取教训!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2020-05-16
    • 2021-12-22
    • 2021-12-21
    相关资源
    最近更新 更多