NodeJS 如何调试从Cypress测试文件调用的JavaScript文件

zbwhf8kr  于 5个月前  发布在  Node.js
关注(0)|答案(1)|浏览(54)

我运行的是Cypress版本12.14.0。我有我的常规Cypress项目结构。我有cypress.cy.js,在e2e目录下我有测试文件,如test1.cy.js
我无法实现的是,我想调试我从测试文件中调用的JS代码。
我在test1.cy.js测试文件中有这个调用

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

字符串
然后我在cypress.js.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
第一个月
然后我选择Chrome并按F12打开Dev Tools。然后调试器在我的cy.js文件中的cy.debug()行开始工作。然而,从这一点开始,我在DevTools的“Sources”选项卡中找到了FileUtils.js,并在我想要的行中放置了一个断点,但它从未进入断点,但我验证了我放置断点的代码实际上成功执行。
那么,我如何调试一个在JS文件中定义的函数,而这个函数是从一个cypress cy.js测试文件中调用的呢?

ar5n3qh5

ar5n3qh51#

据我所知,Cypress调试不能在任务中使用。
测试代码是为cy.debug()设计的,测试代码在浏览器中运行。
任务在Cypress runner的NodeJs部分运行。您已经有了一个单独的checkFiles()模块,因此您应该能够使用Node.js debugging in VS Code运行debug,与Cypress测试分开运行。
Visual Studio代码编辑器具有对Node.js运行时的内置调试支持,可以调试JavaScript、TypeScript和许多其他被编译为JavaScript的语言。

自动附加

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

相关问题