Cypress是否支持禁用自定义/嵌入式screenshot截图功能?
Cypress自定义截图命令行控制方案
Cypress没有内置专门的配置项直接禁用代码中主动调用的cy.screenshot(),但可以通过自定义配置参数+重写内置命令的方式实现通过运行命令控制自定义截图是否生效,具体实现步骤如下:
- 重写内置的
screenshot命令
在项目的cypress/support/commands.js文件中添加以下代码,新增自定义配置项的判断逻辑:
// 保留原始screenshot方法 const originalScreenshot = Cypress.Commands.add('screenshot').originalFn Cypress.Commands.overwrite('screenshot', (originalFn, ...args) => { // 读取自定义配置参数,默认不禁用自定义截图 const disableCustomScreenshot = Cypress.config('disableCustomScreenshot') || false if (!disableCustomScreenshot) { return originalFn(...args) } // 禁用状态下跳过截图操作,不输出多余日志 return cy.wrap(null, { log: false }) })
- 运行用例时传入参数控制
- 需要禁用所有代码中主动调用的自定义截图时,执行命令:
npx cypress run --config disableCustomScreenshot=true - 不需要禁用时直接正常运行即可,无需添加额外参数。
- 需要禁用所有代码中主动调用的自定义截图时,执行命令:
如果需要同时禁用运行失败自动截图和自定义截图,可以合并传参:npx cypress run --config disableCustomScreenshot=true,screenshotOnRunFailure=false
内容的提问来源于stack exchange,提问作者Savelja
相关产品推荐
相关产品推荐

