如果cypress中的任何一个测试失败,则终止/跳过/停止所有规范文件中的所有测试

如果cypress中的任何一个测试失败,则终止/跳过/停止所有规范文件中的所有测试,cypress,Cypress,如果一个测试失败并在这里找到了一个有效的解决方案,我将尝试跳过所有规范文件中的所有其他测试。但是,只有当测试在it()断言中失败时,这看起来才起作用。如果beforeach()中的某些东西失败了,我们怎么能跳过测试呢 例如: before(() => { cy.get('[data-name="email-input"]').type(email); cy.get('[data-name="password-input&quo

如果一个测试失败并在这里找到了一个有效的解决方案,我将尝试跳过所有规范文件中的所有其他测试。但是,只有当测试在it()断言中失败时,这看起来才起作用。如果beforeach()中的某些东西失败了,我们怎么能跳过测试呢

例如:

    before(() => {

      cy.get('[data-name="email-input"]').type(email);
      cy.get('[data-name="password-input"]').type(email);
      cy.get('[data-name="account-save-btn"]').click();
});

如果在上述代码中出现错误(例如:CypresError:Timed out retrying:Expected to find element:“[data name=“email input”]”,但从未找到它。),则停止/跳过所有规范文件中的所有测试。

以防有人在寻找相同问题的答案。我找到了一个解决方案,希望与大家分享

为了实现这个解决方案,我使用了一个cookie,如果出现故障,我会将其设置为value true,并且在执行每个测试之前,cypress会检查cookie的值。如果cookie的值为true,则跳过测试

Cypress.on('fail',error=>{
document.cookie=“shouldSkip=true”;
投掷误差;
});
函数停止测试(){
cy.getCookie('shouldSkip')。然后(cookie=>{
if(cookie&&typeof cookie==='object'&&cookie.value==='true'){
Cypress.runner.stop();
}
});
}

每次试验前(停止试验)通过npx cypress run--headless运行时不工作。