如何解决Cypress运行时出现的OperationalError: EPERM操作无权限报错问题
[OperationalError: EPERM: operation not permitted, unlink 'C:\Users\Krina Modi\Documents\CypressWorkshop\shirtee_Admin\cypress\videos\TestRunner.js.mp4'] { cause: [Error: EPERM: operation not permitted, unlink 'C:\Users\Krina Modi\Documents\CypressWorkshop\shirtee_Admin\cypress\videos\TestRunner.js.mp4'] { errno: -4048, code: 'EPERM', syscall: 'unlink', path: 'C:\Users\Krina Modi\Documents\CypressWorkshop\shirtee_Admin\cypress\videos\TestRunner.js.mp4' }, isOperational: true, errno: -4048, code: 'EPERM', syscall: 'unlink', path: 'C:\Users\Krina Modi\Documents\CypressWorkshop\shirtee_Admin\cypress\videos\TestRunner.js.mp4' } Error: EPERM: operation not permitted, unlink 'C:\Users\Krina Modi\Documents\CypressWorkshop\shirtee_Admin\cypress\videos\TestRunner.js.mp4'
该错误为Windows环境下Cypress运行测试结束后,尝试自动修改/删除生成的测试录屏文件时触发的权限异常,可按以下方案逐一排查解决:
- 结束占用文件的进程:打开任务管理器终止所有Cypress相关进程,手动删除报错路径下的
TestRunner.js.mp4文件后重新运行测试即可,该问题多由上一次测试未正常退出、文件预览/播放器占用录屏文件导致。 - 以管理员身份运行终端:右键点击你使用的命令行工具(CMD、PowerShell、VS Code终端均可),选择「以管理员身份运行」,进入项目目录后重新执行
node TestRunner.js命令即可,该方法可解决Windows用户账户控制导致的普通权限读写限制问题。 - 关闭Cypress录屏功能:不需要测试录屏的前提下,在项目的
cypress.config.js配置文件中新增video: false配置即可避免生成录屏文件,从根源规避该报错,配置参考:
const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { video: false, // 保留原有其他配置项即可 } })
- 调整文件夹权限:右键点击项目根目录
shirtee_Admin,选择「属性」-「安全」选项卡,确认当前登录的Windows用户对该文件夹拥有「修改」「写入」权限,无权限则手动添加后重试。 - 临时关闭安全软件拦截:部分杀毒软件、Windows Defender实时保护会拦截程序对视频文件的删除操作,暂时关闭实时保护后再运行测试验证问题是否解决。
内容的提问来源于stack exchange,提问作者Krina Modi
相关产品推荐
相关产品推荐

