Pour une raison quelconque, mes scripts de test mocha lancent une exception de "décrire n'est pas défini".

J'ai lu et essayé les solutions proposées par ces questions SO mais pas de chance:
décrire n'est pas une fonction
"Mocha décrire n'est pas défini en double"

Les autres liens sont:
dactylographié mocha décrire n'est pas une fonction

Ceci est mon launch.json 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"
}

Ceci est mon script de test moka:

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

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

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

Et voici mon 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'est-ce que je fais de mal ici? J'ai vraiment besoin de recommencer à utiliser le moka.

4
Princess Innah 20 mars 2019 à 13:09

3 réponses

Meilleure réponse

Répondre à ma propre question ici.

J'ai résolu le problème après avoir installé Mocha 6.1.1.

Sur le launch.json, changez le tableau args de "tdd" en "bdd" pour que:
"-u", "bdd"

La version 5.x fonctionnait avec l'option "tdd", donc la prochaine version majeure a causé ce hoquet d'une configuration mal écrite.

15
Princess Innah 8 avril 2019 à 09:44

Peut-être que cela peut fonctionner en spécifiant mocha dans types à l'intérieur de tsconfig.json

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

N'oubliez pas non plus d'installer @types/mocha

npm install @types/mocha --save-dev

J'espère que cela peut résoudre votre problème

0
deerawan 21 mars 2019 à 08:47

Vos fichiers de test sont-ils écrits en Javascript (vous vous référez à * .js dans votre launch.json)?

J'utilise ts-node pour déboguer les tests unitaires et me référer directement aux fichiers de test Typescript, donc mon entrée launch.json ressemble à ci-dessous. Avant d'utiliser ts-node, j'ai eu l'erreur `` décrire n'est pas définie '' lors de l'exécution à partir de VS Code.

{
  "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
Daniel Persson 25 mars 2019 à 09:00