Опишите не определенное исключение на Typescript, Mocha и VSCode - PullRequest
3 голосов
/ 20 марта 2019

По какой-то причине в моих скриптах mocha выдается исключение "описание не определено".

Я прочитал и попробовал решения, предложенные этими вопросами, но не повезло:
описание не является функцией
"Мокко описать не определено как дубликат"

другие ссылки:
машинописный текст mocha description не является функцией

Это мой VSCode launch.json.

{
  "type": "node",
  "request": "launch",
  "name": "Mocha Tests",
  "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
  "args": [
    "-u",
    "tdd",
    "--timeout",
    "999999",
    "--colors",
    "${workspaceRoot}/dist/tests/**/*.js"
  ],
  "outFiles": ["${workspaceFolder}/dist/tests/**/*.js"],
  "sourceMaps": true,
  "protocol": "inspector",
  "internalConsoleOptions": "openOnSessionStart"
}

Это мой тестовый скрипт мокко:

import "mocha";
import assert = require("assert");

describe("Init", () => {
  before(() => {
    console.log("before-hook");
  });

  it("connected", () => {
    assert(true, "is not true");
  });
});

А это мой tsconfig.json:

{
  "compilerOptions": {
    "experimentalDecorators": true,
    "strict": true,
    "noImplicitAny": false,
    "module": "commonjs",
    "target": "es6",
    "lib": [ "es6" ],
    "sourceMap": true,
    "outDir": "dist",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "strictNullChecks": true,
    "allowJs": false,
    "checkJs": false,
    "types": [
      "node"
    ]
  },
  "compileOnSave": true
}

Что я здесь не так делаю? Мне действительно нужно вернуться к использованию мокко.

Ответы [ 3 ]

8 голосов
/ 08 апреля 2019

Отвечая на мой собственный вопрос здесь.

Я выяснил проблему после установки Mocha 6.1.1.

В файле launch.json измените массив args с «tdd» на «bdd», чтобы:
"-u", "bdd"

Версия 5.x работала с опцией «tdd»поэтому следующая основная версия вызвала этот сбой плохо написанной конфигурации.

0 голосов
/ 25 марта 2019

Ваши тестовые файлы написаны на Javascript (вы ссылаетесь на * .js в вашем launch.json)?

Я использую ts-node для отладки модульных тестов и обращаюсь непосредственно к тестовым файлам Typescript, поэтому моя запись launch.json выглядит следующим образом. До того, как я использовал ts-node, я получал ошибку «описать не определено» при запуске из кода VS.

{
  "type": "node",
  "request": "launch",
  "name": "Unit tests (mocha)",
  "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
  "args": [
    "-r",
    "ts-node/register",
    "--timeout",
    "999999",
    "--colors",
    "${workspaceFolder}/test/**/*Test.ts",
  ],
  "console": "integratedTerminal",
  "internalConsoleOptions": "neverOpen",
  "protocol": "inspector"
}
0 голосов
/ 21 марта 2019

Возможно, это может сработать, указав mocha в types внутри tsconfig.json

{
  "compilerOptions": {
    ...
    "types": [
      "node",
      "mocha" <--- specify here
    ]
  },
  "compileOnSave": true
}

Также не забудьте установить @types/mocha

npm install @types/mocha --save-dev

Надеюсь, что это может решить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...