And*_*len 92 tdd mocha.js node.js visual-studio-code
是否可以使用Visual Studio Code为Mocha测试添加断点?
通常在调试代码时需要配置launch.json,将program属性设置为要执行的javascript文件.我不知道如何为摩卡做这个.
Fra*_*cke 74
你知道吗,你只是进入你的启动配置,把光标放在你的其他配置之后或之间,然后按ctrl- space以获得当前有效的mocha配置自动生成?
这对我来说非常好.包括在断点处停车.(我也有一个先前的,现在过时的,不再出于各种与设置相关的原因.)
从VSCode 1.21.1(2018年3月)开始,这会产生:
{
"version": "0.2.0",
"configurations": [
{
"name": "Mocha (Test single file)",
"type": "node",
"request": "launch",
"runtimeArgs": [
"${workspaceRoot}/node_modules/.bin/mocha",
"--inspect-brk",
"${relativeFile}",
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}
}
Run Code Online (Sandbox Code Playgroud)
旁注:debug-brk
已被删除(对于任何Node> = Version 8的人).
fel*_*ker 69
如果您不想使用--debug-brk
+ Attach或声明全局mocha安装的绝对路径(如果您将launch.json保留在版本控制下并且在不同的计算机上有多个开发人员,则会生效),请安装mocha作为dev依赖项并且将此添加到您的launch.json:
{
"name": "mocha",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"stopOnEntry": false,
"args": ["--no-timeouts", "--colors"], //you can specify paths to specific tests here
"cwd": "${workspaceRoot}",
"runtimeExecutable": null,
"env": {
"NODE_ENV": "testing"
}
}
Run Code Online (Sandbox Code Playgroud)
只需按F5即可在测试中获得完全调试支持.
--no-timeouts
确保你的测试没有超时,因为你停在断点处,并--colors
确保Mocha输出颜色,即使它没有检测到VS Code支持颜色.
Wol*_*uge 42
另一种方法是使用--debug-brk
mocha 的命令行选项和Attach
Visual Studio Code调试器的默认启动设置.
建议更深入的解释(来自André)
去做这个:
使用以下命令从命令行运行mocha:
mocha --debug-brk
Run Code Online (Sandbox Code Playgroud)
现在在VS Code中单击Debug图标,然后Attach
从开始按钮旁边的选项中进行选择.在VS Code中添加断点,然后单击"开始".
GPX*_*GPX 23
我在OS X 10.10上的VSCode上做了这个工作.只需./settings/launch.json
用这个替换你的文件.
{
"version": "0.1.0",
"configurations": [
{
"name": "Run app.js",
"type": "node",
"program": "app.js", // Assuming this is your main app file.
"stopOnEntry": false,
"args": [],
"cwd": ".",
"runtimeExecutable": null,
"env": { "NODE_ENV": "production"}
},
{
"name": "Run mocha",
"type": "node",
"program": "/Users/myname/myfolder/node_modules/mocha/bin/_mocha",
"stopOnEntry": false,
"args": ["test/unit.js"],
"cwd": ".",
"runtimeExecutable": null,
"env": { "NODE_ENV": "production"}
}
]
}
Run Code Online (Sandbox Code Playgroud)
它也可以作为一个依据这里.
您需要更改的键值program
应该设置为_mocha
可执行文件,并且args
应该是测试文件的数组.
mik*_*ebz 10
我在Mac OS X上使用VS Code(1.8.2)的方法是:
{
"name": "Mocha",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"stopOnEntry": false,
"args": ["--recursive"], //you can specify paths to specific tests here
"cwd": "${workspaceRoot}",
"runtimeExecutable": null,
"env": {
"NODE_ENV": "testing"
}
}
Run Code Online (Sandbox Code Playgroud)
Mocha需要安装在npm模块目录中.
Debug > Add Configuration...
菜单Node.js
环境Mocha Tests
从出现的下拉列表中选择选项args
属性的最后一项breakpoint
Debug
图标Mocha Tests
作为配置Start debugging
按钮我已经找到了一种方法来实现这一点,我将其归类为一种解决方法.我希望Visual Studio Code团队为此提供更明确的解决方案,但与此同时我做了以下事情:
./settings/mocha.js
运行mocha 的文件,以编程方式将参数作为要运行的文件列表.你可以在这里看到完整的文件;我已经创建了一个启动配置,它将运行./settings/mocha.js
as program
并传递我们需要测试的文件/文件模式作为参数:
{
"name": "Unit tests",
"type": "node",
"program": ".settings/mocha.js",
"stopOnEntry": true,
"args": ["test/unit/*.js", "test/unit/**/*.js"],
"cwd": ".",
"runtimeExecutable": null,
"env": { }
}
Run Code Online (Sandbox Code Playgroud)
所以这相当于做mocha test/unit/*.js test/unit/**/*.js
,现在我们可以在我们的mocha测试中使用断点.
归档时间: |
|
查看次数: |
32353 次 |
最近记录: |