Cypress 本身启动过程的调试

简介: Cypress 本身启动过程的调试

这个文件:node_modules\cypress\bin\cypress


里面的内容:


#!/usr/bin/env node
require('../lib/cli').init()


很多 require:




找到 init 方法:



我们执行的 yarn cypress:open, 执行的应该是这个 open.js 文件里的内容吧。



验证一下就知道了。在 open.js 里添加一行打印语句。如果我们重新执行 cypress:open, 并且看到了这条打印语句,说明我们的猜想是正确的:



果然,我们的猜想是正确的。



下一个问题:如何调试 cypress:open 这个启动过程本身?


我们再回到 .bin 文件夹下的 cypress.cmd 文件,如何知道运行时我们执行的是图例1 还是图例2 的 if 分支呢?故意将 if 分支里的路径胡乱修改一下,然后执行,根据报错的消息即可判断。



运行时,试图查找 cypress2,说明进入上图的 else 分支:



那么我们就给这个分支加上 --inspect-brk 的 option:



重新执行,现在应该就可以单步调试了:



果然,现在停在了 require('../lib/cli').init() 这行语句,我们就可以单步调试 Cypress 了:



开始单步调试,从 process.env 传递进来的命令行参数:open:



创建一个新的 command 实例:



这里加载 exec 文件夹下的 open.js 文件,执行对应的 module:



在 open.js module 的 start 函数里设置断点:



工作目录:



这里引入一个问题,这个 debug module 如何打开调试模式?



轻量级:




居然是这个 path:



C:\Users\I042416\AppData\Local\Cypress\Cache\8.5.0\Cypress


这还有一个 exe 文件:足足有 130 MB:



一个 windows 客户端:



未完待续

相关文章
|
iOS开发
LLDB 调试命令、插件和技巧(上)
LLDB 调试命令、插件和技巧(上)
579 0
|
3月前
|
JSON 测试技术 数据安全/隐私保护
如何调试cypress脚本?
如何调试cypress脚本?
如何调试cypress脚本?
|
3月前
|
小程序 存储控制器 Android开发
OPENJTAG调试学习(二):OpenOCD、OpenJTAG 烧写程序、调试程序
OPENJTAG调试学习(二):OpenOCD、OpenJTAG 烧写程序、调试程序
364 0
驱动开发:WinDBG 常用调试命令总结
Windbg是Microsoft公司免费调试器调试集合中的GUI的调试器,支持Source和Assembly两种模式的调试。Windbg不仅可以调试应用程序,还可以进行Kernel Debug。结合Microsoft的Symbol Server,可以获取系统符号文件,便于应用程序和内核的调试。Windbg支持的平台包括X86、IA64、AMD64。
457 0
|
资源调度
Cypress 本身启动过程的调试(1)
Cypress 本身启动过程的调试
|
Windows
Cypress 本身启动过程的调试(2)
Cypress 本身启动过程的调试
|
Web App开发 资源调度 测试技术
Cypress系列(44)- 命令行运行 Cypress
Cypress系列(44)- 命令行运行 Cypress
655 0
Cypress系列(44)- 命令行运行 Cypress
|
iOS开发 C++ Python
LLDB 调试命令、插件和技巧(下)
LLDB 调试命令、插件和技巧(下)
444 0