当前位置:  开发笔记 > 编程语言 > 正文

VSCode如何使用es6 mocha单元测试和jsx文件进行调试

如何解决《VSCode如何使用es6mocha单元测试和jsx文件进行调试》经验,为你挑选了1个好方法。

我设法打破了我的断点,但我遇到了一些问题.

代码在es5中,无法调试

它只用.js命中断点.我需要它用.jsx文件命中.

Mocha.opts似乎根本不起作用.我已经尝试--compilers jsx:babel-register从.js 添加和重命名为.jsx,断点不再受到攻击.

似乎阻止它完全运行的摩卡选项:

--require babel-register
--require test/util/dom.js
--require expect
--compilers jsx:babel-register

Launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "request": "launch",
      "name": "Debug Mocha Test",
      "type": "node",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "test/**/*.spec.js", //I need to get this working with .jsx files
        "--require", "babel-register"
        ],
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": null,
      "env": { }
    }
  ]
}

Martin Dawso.. 7

事实证明这是节点调试器的一个错误.我通过更改修复了所有问题:

"type": "node""type": "node2".

Launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "request": "launch",
      "name": "Debug Mocha Test",
      "type": "node2",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "test/**/*.spec.jsx",
        "--colors", "--no-timeouts"
        ],
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": null,
      "env": { }
    }
  ]
}

mocha.opts:

--require babel-register
--require test/util/dom.js
--require expect
--compilers jsx:babel-register

答案取自weinand.

您还需要在根应用程序中使用.babelrc文件"retainLines": true.这是我的.babelrc文件,例如:

{
    "presets": [
        "es2015",
        "stage-2",
        "react"
    ],
    "plugins": [
        "transform-es2015-modules-umd"
    ],
        "retainLines": true
}

如果您获得bad option: --inspect=...,请尝试安装较新版本的节点.



1> Martin Dawso..:

事实证明这是节点调试器的一个错误.我通过更改修复了所有问题:

"type": "node""type": "node2".

Launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "request": "launch",
      "name": "Debug Mocha Test",
      "type": "node2",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "test/**/*.spec.jsx",
        "--colors", "--no-timeouts"
        ],
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": null,
      "env": { }
    }
  ]
}

mocha.opts:

--require babel-register
--require test/util/dom.js
--require expect
--compilers jsx:babel-register

答案取自weinand.

您还需要在根应用程序中使用.babelrc文件"retainLines": true.这是我的.babelrc文件,例如:

{
    "presets": [
        "es2015",
        "stage-2",
        "react"
    ],
    "plugins": [
        "transform-es2015-modules-umd"
    ],
        "retainLines": true
}

如果您获得bad option: --inspect=...,请尝试安装较新版本的节点.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有