Cypress全局Retries配置不生效问题求助
问题分析与解决方案
核心问题出在fail-fast插件的默认行为和Cypress重试逻辑的优先级冲突,和run模式下的HTML报告无关——报告只是结果输出,不会干预测试执行流程。
具体原因
cypress-fail-fast插件默认在run模式下,只要测试第一次失败就立即触发终止逻辑,跳过后续所有测试,这直接绕过了Cypress的重试机制。而open模式下插件的触发逻辑不同,所以重试能正常执行。
解决步骤
修改cypress-fail-fast的配置,让它等待当前测试的所有重试完成后,再判断是否终止测试套件:
- 在
cypress.config.ts中调整插件的runMode配置:
import { defineConfig } from 'cypress'; import failFast from 'cypress-fail-fast/plugin'; export default defineConfig({ retries: { runMode: 2, // 你的全局重试配置 openMode: 2, }, e2e: { setupNodeEvents(on, config) { // 配置fail-fast,让它在重试全部失败后再触发终止 failFast(on, config, { runMode: { failOnFirstFailure: false, }, }); return config; }, }, });
- 验证效果:重新以run模式运行测试,当测试失败时会先执行完配置的2次重试,只有当所有重试都失败后,fail-fast才会触发并跳过后续测试。
额外提示
如果使用的是其他fail-fast插件,核心思路一致:找到插件中控制"失败后立即终止"的配置项,将其调整为"所有重试完成后再终止"即可。
内容的提问来源于stack exchange,提问作者Gabriel García Garrido
相关产品推荐
相关产品推荐

