Búsqueda de sitios web

visual studio code - Excepción 'Describe no está definido' en Typescript, Mocha y VSCode


Por alguna razón, mis scripts de prueba de mocha están lanzando una excepción de "describe no está definido".

He leído y probado las soluciones sugeridas por estas preguntas de SO pero no tuve suerte:
describe no es una función
"Mocha describe no está definido duplicado"

otros enlaces son:
typescript mocha describe no es una función

Este es mi launch.json de VSCode.

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

Este es mi script de prueba de mocha:

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

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

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

Y este es mi 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
}

¿Qué estoy haciendo mal aquí? Realmente necesito volver a usar mocha.

Respuesta #1

Respondiendo a mi propia pregunta aquí.

He descubierto el problema después de instalar Mocha 6.1.1.

En el launch.json, cambia el array args de "tdd" a "bdd" de modo que:
"-u", "bdd"

La versión 5.x funcionaba con la opción "tdd", así que la siguiente versión principal causó este contratiempo debido a una configuración mal escrita.

Respuesta #2

Eliminando esta importación:

import { describe, it } from 'mocha';

Parece solucionarlo para mí.

Artículos relacionados