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

时间:2017-01-09 22:00:56

标签: javascript reactjs mocha visual-studio-code

我设法击中断点,但我遇到了一些问题。

  • 代码在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": { }
    }
  ]
}

1 个答案:

答案 0 :(得分:6)

原来这是节点调试器的错误。我通过改变来解决所有问题:

"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获取答案。

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

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

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