Cypress测试运行失败后是否支持修改代码后从失败节点继续执行?
Cypress测试失败后接续运行的解决方案
Cypress原生没有直接从失败位置断点续跑的内置能力,你可以通过以下几种方案实现类似效果,减少重复运行已成功用例的时间:
方案1:仅重跑上一轮失败的用例集
这是最常用的轻量化替代方案:
- 首次运行测试时添加
--fail-fast参数,测试遇到第一个失败用例就会立即终止,避免后续无关用例继续执行浪费时间 - 完成代码修正后,添加
--spec参数指定上次失败的测试文件运行即可;如果安装了cypress-repeat插件,还可以直接加--only-failed参数,自动筛选并仅重跑上一轮所有执行失败的用例
注意:如果失败用例所在的测试文件内包含多个
it测试块,这个方案会重跑整个文件内的所有用例,不会跳过该文件内已经执行成功的前置测试块。
方案2:手动标记跳过已验证成功的测试块
如果需要在单个测试文件内跳过已执行成功的前置步骤,可以通过临时标记实现:
- 给已经执行成功的
it块添加.skip修饰符,示例:it.skip('账号登录验证', () => { // 已验证通过的测试逻辑 }) - Cypress运行时会自动跳过所有带
.skip标记的测试块,直接从后续未标记的失败用例开始执行,调试完成后删除所有临时添加的.skip标记即可。
方案3:通过社区插件实现自动断点续跑(仅限本地调试使用)
如果不想手动修改代码加跳过标记,可以使用社区维护的cypress-grease插件:
- 插件开启
persistRuns配置项后,会自动记录每一个it块的运行状态,上一轮执行成功的测试块会被自动跳过,直接从失败的测试块开始运行 - 该插件仅适合本地开发调试场景使用,不要在CI流水线中启用,避免缓存的状态数据影响正式测试结果的准确性。
内容的提问来源于stack exchange,提问作者Syed Muhammad Usman Ghani
相关产品推荐
相关产品推荐

