我运行的是Cypress 12.14.0版.我有我的常规 cypress 项目 struct .我有cypress.config.js,在e2e目录下有测试文件,比如test1.cy.js

我无法实现的是,我想调试我从测试文件中调用的JS代码.

在我的test1.cy.js测试文件中有这个调用

 cy.task('myTask', '', {
        options: { taskTimeout: 3600000 }
      }).then(()=>{
        cy.debug()
      })

然后我在cypress.config.js中有了这个定义

...
const fileUtils = require('./Utils/FileUtils.js')
...
    setupNodeEvents: async function (on, config) {
      on('task', {
        myTask() {
          fileUtils.checkFiles()
          return true
        }
      })
    }

在我的FileUtils.js文件中:

...

async function checkFiles(){

/*
my code i want to debug line by line
*/

}

module.exports = {
  checkFiles:checkFiles
}

然后我使用命令运行Cypress

npx cypress open

然后我 Select Chrome并按F12打开Dev Tools.然后,调试器开始处理我的cy.js文件中的第cy.debug()行.然而,从这一点开始,我在DevTools的"Sources"选项卡中找到了FileUtils.js,并在我想要的行中放置了一个断点,但它从未进入断点,但我验证了放置断点的代码实际上是成功执行的.

是的如何调试JS文件中定义的函数,该函数是从Cypress cy.js测试文件中调用的?

推荐答案

据我所知,Cypress调试不能在任务内部使用.

测试代码是为cy.debug()而设计的,并且测试代码在浏览器中运行.

任务在Cypress Runner的NodeJS部分运行.您已经有了一个单独的checkFiles()模块,所以您应该能够使用Node.js debugging in VS Code运行调试,独立于Cypress测试运行.

Visual Studio代码编辑器具有对Node.js运行时的内置调试支持,并且可以调试转换为JavaScript的JavaScript、TypeScrip和许多其他语言.

Auto Attach

如果启用了自动附加功能,Node调试器会自动附加到从VS代码的集成终端启动的某些Node.js进程.

Javascript相关问答推荐

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

如何为我的astro页面中的相同组件自动创建不同的内容?

配置WebAssembly/Emscripten本地生成问题

Angular 形式,从DOM中删除不会删除指定索引处的内容,但会删除最后一项

Reaction-SWR-无更新组件

如果一个字符串前面有点、空格或无字符串,后面有空格、连字符或无字符串,则匹配正则表达式

第一项杀死下一项,直到数组长度在javascript中等于1

为列表中的项目设置动画

将相关数据组合到两个不同的数组中

如何根据输入数量正确显示alert ?

Reaction useState和useLoaderData的组合使用引发无限循环错误

AG-GRIDreact 显示布尔值而不是复选框

在ChartJS中使用spanGaps时,是否获取空值的坐标?

在Puppeteer中使用promise进行日志(log)记录时出现TargetCloseError

为什么这个最小Angular 的Licial.dev设置不起作用?

使用Java脚本在div中创建新的span标记

递归地将JSON对象的内容上移一级

MUI-TABLE:MUI表组件中交替行的不同 colored颜色 不起作用

用内嵌的含selenium的Java脚本抓取网站

使用导航时,路径的所有子组件都必须是路径