VSCode 使用 npm 和 package.json 脚本启动测试时不会在断点处停止

VSCode not stopping at breakpoints when test launched using npm and package.json scripts

VSCode 我想启动当前文件(例如 my-function.spec.ts)并进行交互式调试设置断点。

为了测试运行,我需要设置一些环境变量,例如MONGO=mongodb://localhost:27017/。出于这个原因,我通过 npm 脚本 启动测试,并使用 [=] 中定义的配置的 "envFile" 属性 传递环境变量39=].

launch.json

   "configurations": [
        {
            "name": "Current TS Tests File",
            "type": "node",
            "request": "launch",
            "runtimeExecutable": "npm",
            "args": ["${relativeFile}"],
            "cwd": "${workspaceRoot}",
            "protocol": "inspector",
            "envFile": "${workspaceFolder}/.env",
            "runtimeArgs": ["run-script", "test-one"]
        },
    ]
}

package.json脚本是

"scripts": {
   "test-one": "npm mocha -r ts-node/register",
}

有了这个配置,我就可以启动测试了。测试按预期执行,但代码不会在我设置的断点处停止执行。关于如何使断点起作用有什么建议吗?

以下配置适用于我的机器。源代码是 in this GitHub repository. 运行 调试器的 Launch via NPM 配置在 assert 上命中断点。

关于使用 node-ts 和 VS Code in this node-ts issue 进行调试的更多详细信息。如果您需要更多帮助将此设置映射到您的要求,请告诉我。

package.json

{
  "scripts": {
    "test": "mocha -r ts-node/register --inspect --debug-brk index.test.ts"
  },
  "devDependencies": {
    "@types/mocha": "^5.2.7",
    "@types/node": "^12.0.12",
    "mocha": "^6.1.4",
    "ts-node": "^8.3.0",
    "typescript": "^3.5.2"
  }
}

launch.json

{
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch via NPM",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run-script", "test"],
      "port": 9229
    }
  ]
}

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true
  }
}

index.test.ts

import assert from 'assert';

describe('index', function () {
    it('should pass', function () {
        assert.equal(true, true);
    });
});