2017-01-09 9 views
2

Мне удается ударить точку останова, но у меня есть несколько проблем.VSCode Как отлаживать с помощью модульных тестов es6 mocha и jsx-файлов

  • Код находится в 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": { } 
    } 
    ] 
} 

ответ

5

Оказывается, что это ошибка с отладчиком узла. Я исправил все проблемы, изменив:

"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=..., попробуйте и установить новую версию узла.

+0

Похоже, что с текущей версией vscode вы используете «тип»: «узел», а затем добавьте «протокол»: «инспектор». Но этот ответ заставил меня отлаживать - спасибо! – scolestock