重拾JS的路从修改JS源码开始,修改JS源码从源码自带的test code开始。源码的test code使用了jtest框架,从test code刚好可以看到要修改部分的 多种传值方式,以及函数输出结构。修改源码后,顺便修改jtest的snapshot, 刚好又可以重新利用test code,进行验证自己的修改是否达到预期,白盒测试十分轻巧方便!

第一步,debug jest code, 我使用了VSCode做编辑器,要修改的js源码比较复杂,有多个工程,每个工程有自己的package.json, babelrc, yarn.lock,总之包管理很复杂。。我修改的部分只是其中一个工程,主要是debug这个工程下的jest文件。用习惯了ideal里本地debug Java的方式,希望在VSCode里也能这样去debug。(不是专业前端开始,在浏览器里进行大型debug用着不顺手)。

  要能debug, 主要需要在VSCode里创建launch.json文件,方法如下:(截图来自VSCode官网)在VSCode里打开工程目录,选择左侧工具栏的debug图标,然后在debug面板上选择小齿轮图标。

VSCode会自动探测你的debug环境,如果探测失败的话,需要手工选择。

至此,在你的工程目录下,就会自动生成launch.json文件,位于.vscode文件夹下,因为我们要调试jest文件,所以launch.json中的内容需要修改为jest的,(参考jest官网给的配置),下面是我的launch.json。

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug Jest Tests",
"type": "node",
"request": "launch",
"runtimeArgs": [
"--inspect-brk",
"${workspaceRoot}/node_modules/jest/bin/jest.js",
"--runInBand"
],
//"sourceMaps": true,
"trace": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}
]
}
 
到此,就可以在VSCode里debug jest了,选择你要debug的jest文件,右键选择debug jest即可。
 

参考链接:

https://code.visualstudio.com/docs/editor/debugging

https://jestjs.io/docs/en/troubleshooting.html#debugging-in-vs-code

https://blog.csdn.net/qq_17371033/article/details/79503136

最新文章

  1. Curator Zookeeper分布式锁
  2. 收集一些有用的docker镜像
  3. Android多国语言文件夹命名方式
  4. Lintcode: Segment Tree Modify
  5. smaa github iryoku
  6. iOS9 class dump header
  7. L001-oldboy-mysql-dba-lesson01
  8. 关于Zen Coding:css,html缩写
  9. taglib的使用
  10. [Java 8 Lambda] java.util.stream 简单介绍
  11. Qt中QFtp获取带有中文的文件名称出现乱码的解决方法(执行操作前就转换编码)
  12. Android异步载入全解析之IntentService
  13. HTML5基本标签的使用
  14. node.js上除了Express还有哪些好用的web开发框架
  15. 简单了解JS中的几种遍历
  16. 轴对称 Navier-Stokes 方程组的点态正则性准则 II
  17. Problem A: 编写函数:三个数的最大最小值
  18. autolayout UILabel 设置最大宽度
  19. 【leetcode 简单】 第六十九题 删除链表中的节点
  20. Centos下运行cp命令式提示略过目录

热门文章

  1. Spring jsp 下拉列表
  2. 【转】SpringMVC框架实现后端向前端传数据
  3. PyCharm Django 显示一个简单页面
  4. Django Simple Captcha的使用
  5. SAS学习笔记38 SAS Comments注释语句
  6. web&http协议&django初识
  7. Sonya and Bitwise OR CodeForces - 1004F (线段树,分治)
  8. Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络
  9. Xamarin(Android)制作启动画面
  10. vue中子组件的created、mounted钩子中获取不到props中的值问题