首页 > 解决方案 > 在 VS Code 下获取 mocha 调试以使用 mocha 的 --file 选项来启动每个测试

问题描述

我不使用 VS Code 的同事制作了一个小打字稿文件,每次测试都运行。这可以通过使用 --file 选项从 mocha 命令行运行。我试图将 --file 选项和 args 部分放在 .vscode/launch.json 文件中,但它似乎被忽略了。

在拉了很多头发之后,我设法通过使用 --config 选项指向一个小的 .mocharc.js 文件来让它工作,我把它放在 .vscode 文件夹中以使其不受干扰。.mocharc.js 看起来像这样:

module.exports = {  
  file: ['./tests/testHelper.ts']
}

我把它放在这里,以便有人可以发布更好的方法,或者有人可能会发现它有用。launch.json 的 args 部分如下所示:

"args": [
                "-r",
                "ts-node/register",
                "--config", "${workspaceRoot}/.vscode/.mocharc.js",
                "${relativeFile}",
                "--no-timeout"
            ],

标签: typescriptdebuggingtestingvisual-studio-codemocha.js

解决方案


我能够按照最初的描述完成这项工作。构建Node.js: Launch Program启动配置,添加programargs

{
  "name": "Mocha: Current File",
  "type": "node",
  "request": "launch",
  "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
  "args": [
    "-r",
    "ts-node/register",
    "--file",
    "testHelper.ts",
    "${relativeFile}",
    "--no-timeout"
  ],
  "skipFiles": [
    "<node_internals>/**"
  ]
}

我能够针对测试文件运行调试器,查看测试助手是否运行,并根据需要放置断点。您可以针对此最小项目设置进行验证:https ://github.com/zbream/so-mocha-helper

因此,我怀疑您的问题可能与您的项目更具体。但是,如果没有更多信息,这很难说。


推荐阅读