我运行的是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测试文件中调用的呢?
1条答案
按热度按时间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进程。