Cypress断言失败但UI仍标记测试通过,该现象是否符合预期?
Cypress断言失败但测试标记为通过的解决方案
以下是对应问题的排查及修复步骤:
- 删除自定义fail事件监听代码
Cypress.on("fail", (err, runnable) => { return false; });的作用为主动拦截测试失败事件,强制将测试状态标记为通过,是该问题的核心诱因,删除这行代码即可恢复正常的失败判定逻辑。 - 修正全局配置存放路径
全局事件监听、通用配置需存放在Cypress认可的目录下才会生效:- Cypress 10.x及以上版本:
cypress/support/e2e.js - Cypress 9.x及更早版本:
cypress/support/index.js
存放在cypress/integration/support下的配置文件不会被Cypress自动加载,因此此前的修改不会生效。
- Cypress 10.x及以上版本:
- 升级Cypress到最新稳定版
部分老旧版本的Cypress存在UI显示bug,会出现断言失败但测试状态标记错误的问题,执行以下命令升级即可修复:npm install cypress@latest --save-dev - 排查测试代码异常
检查所有测试代码,不要给Cypress命令链添加自定义.catch()逻辑吞掉错误,否则会导致失败状态无法向上传递到测试运行器。此外示例代码中第二个cy.get的选择器漏写右方括号,修正为cy.get('[name=totallyfake12345]')即可。
内容的提问来源于stack exchange,提问作者furnace915
相关产品推荐
相关产品推荐

