VSCode не останавливается в точках останова при запуске теста с использованием скриптов npm и package.json - PullRequest
1 голос
/ 04 июля 2019

Из VSCode Я хотел бы запустить текущий файл (например, my-function.spec.ts ) и выполнить интерактивные точки отладки настройки отладки.

Для запуска теста мне нужно установить некоторые переменные среды, например, MONGO=mongodb://localhost:27017/. По этой причине я запускаю тест с помощью сценария npm и передаю переменные среды, используя свойство "envFile" конфигураций, определенных в launch.json .

launch.json is

   "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",
}

С этой конфигурацией я могу запустить тест. Тест выполняется должным образом, но код не останавливает выполнение в установленных точках останова. Любое предложение о том, как заставить работать контрольные точки?

1 Ответ

1 голос
/ 04 июля 2019

Следующая конфигурация работает на моей машине. Исходный код в этом репозитории GitHub. Запуск Запуск через конфигурацию NPM из отладчика достигает точки останова на assert.

Более подробная информация об отладке с node-ts и кодом VS в этом node-ts выпуске . Дайте мне знать, если вам понадобится дополнительная помощь для сопоставления этой установки с вашими требованиями.

enter image description here

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);
    });
});
...