2016-12-31 7 views
0

Für mein Nodejs-Modul schrieb ich ein paar Unit-Tests mit Mocha und Chai. Sie laufen fein auf macOS, aber nicht auf Windows, mit diesem Compiler-Fehler kompilieren:Mocha kann Typescript-Code unter Windows nicht kompilieren

D:\projects\antlr4-graps>npm test 

> [email protected] test D:\projects\antlr4-graps 
> mocha --compilers ts:ts-node/register,tsx:ts-node/register 


D:\projects\antlr4-graps\node_modules\ts-node\src\index.ts:312 
      throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset)) 
       ^
TSError: ⨯ Unable to compile TypeScript 
test\test.ts (17,1): Cannot find name 'describe'. (2304) 

Der Code, der ist zu kompilieren fehlschlägt:

describe('antlr4-graps', function() { 

die völlig gültiger Code ist (the full version of that file is on Github). Ich habe überprüft, dass Mocha und Chai als lokale Knotenmodule installiert sind, einschließlich ihrer TS-Entsprechungen (@ type/chai und @ type/mocha).

Wie kann ich die Zusammenstellung reparieren?

Antwort

1

Sie müssen Mocha in Ihre Testdatei importieren. Ich habe ein Projekt mit der Beschreibung wiedergegeben Sie gab, was Sie installiert haben, und hier muss ich nur noch hinzufügen:

import "mocha"; 

zu Beginn einer Testdatei, so dass describe und seine Geschwister im globalen Raum definiert werden .

+0

Ausgezeichnet. Das war das fehlende Stück (wie gesagt läuft es ohne diesen Import auf macOS). Interessant ist, dass Mocha meine Tests zweimal im Lauf eines Aufrufs ausführt. Aber vielleicht ist dies das Ergebnis der Fehler, die es aktuell meldet. In der Summe ist das Verhalten im Vergleich zu macOS ziemlich unterschiedlich, aber die Unterschiede sollten möglich sein, um zu lösen. Vielen Dank. –

+0

Ich habe gerade gesehen, dass die Tests in vscode jetzt einwandfrei funktionieren, nur wenn sie von der Befehlszeile aus ausgeführt werden, bekomme ich die Fehler. Vermutlich aufgrund verschiedener tsc Versionen (ich habe auch VS 2013 und VS 2015 auf dieser Box installiert). –

Verwandte Themen