如何调试Cypress测试文件调用的JavaScript文件?
调试Cypress Task调用的Node.js代码(FileUtils.js)
问题根源
你遇到的断点不触发问题,核心原因是:Cypress的cy.task代码运行在Node.js环境中,而你打开的Chrome DevTools是调试浏览器端的Cypress测试代码(比如test1.cy.js),两者属于不同的执行环境,所以浏览器的DevTools无法捕获Node端代码的断点。
正确调试方法
方法1:使用Cypress Node调试模式(推荐)
- 关闭当前运行的Cypress窗口
- 在终端执行带调试参数的启动命令:
npx cypress open -- --inspect-brk=9229 - 打开Chrome浏览器,地址栏输入
chrome://inspect - 在页面中点击Configure按钮,添加
localhost:9229到目标列表,然后关闭配置弹窗 - 页面会显示Cypress的Node进程,点击Inspect打开Node专用的DevTools
- 在Node DevTools的Sources面板中找到你的
Utils/FileUtils.js,设置断点 - 回到Cypress窗口,运行目标测试用例,断点会自动触发
方法2:手动添加debugger语句快速调试
- 在
FileUtils.js的checkFiles函数中需要调试的位置插入debugger;语句:async function checkFiles(){ debugger; // 插入调试语句 /* 你的业务代码 */ } - 同样用带调试参数的命令启动Cypress:
npx cypress open -- --inspect-brk=9229 - 通过
chrome://inspect连接Node调试器,运行测试后会自动停在debugger语句处
注意事项
cy.debug()是浏览器端的调试命令,仅作用于Cypress测试代码(test1.cy.js),和Node端的cy.task代码无关- 如果使用
npx cypress run(无头模式),同样可以添加--inspect-brk参数进行调试 - 确保你的
checkFiles函数确实被执行(你已确认执行,此步可忽略)
内容的提问来源于stack exchange,提问作者bla dla
相关产品推荐
相关产品推荐

