Bootstrapping einer Mocha-Testsuite

8

Ich habe zahlreiche Tests über mehrere Dateien in einer Node JS-Anwendung verteilt. Ich möchte Bootstrap-Code ausführen, bevor Mocha eine der Testdateien ausführt. Dies ist so, dass ich beispielsweise Globals festlegen kann, die in jedem der tatsächlichen Tests verwendet werden.

Beispiel Bootstrap-Code

%Vor%

Es scheint, dass Mocha alle Dateien unter / test alphabetisch lädt, also wenn ich diesen Bootstrap-Code "bootstrap.js" und alles andere mit einem Anfangsbuchstaben nach "B" benenne, "funktioniert".

Offensichtlich ist dies zerbrechlich und lächerlich, aber ich möchte nicht, dass diese Standardausgabe meiner unterstützenden Bibliotheken oben in jeder Testdatei steht.

Wie kann ich Mocha sagen, dass es zuerst ein Bootstrap-Skript laden oder etwas funktional Äquivalentes erstellen soll?

    
Adam Terlson 21.12.2013, 21:41
quelle

3 Antworten

9

hast du versucht mocha --require mymodule.js TESTS_DIR

aus der Dokumentation

  

-r, --require

     

Die Option --require ist nützlich für Bibliotheken wie should.js, also Sie   kann einfach - erforderlich sein, anstatt manuell aufzurufen   erfordern ('sollte') innerhalb jeder Testdatei. Beachten Sie, dass dies gut für   sollte es Object.prototype jedoch vergrößern, wenn Sie darauf zugreifen möchten   Die Exporte eines Moduls müssen Sie benötigen, z. B. var   sollte = erfordern ('sollte').

Sie könnten auch am Anfang jedes Tests schreiben, um die require("./bootstrap.js") zu laden und Tests auszuführen.

    
Gntem 21.12.2013, 21:50
quelle
2

Ich benutze Mochas Flagge --delay

  

Wenn Sie vor einem Ihrer asynchronen Vorgänge vorgehen müssen   Suites ausgeführt werden, können Sie die Root-Suite verzögern. Mach einfach Mocha mit   das --delay-Flag. Dies wird eine spezielle Funktion, run (), in der   globaler Kontext.

%Vor%     
Yuriy Ivanov 21.10.2015 06:17
quelle
0

Wenn Sie vor der Ausführung von Mocha zuerst einen Bootstrap-Code in einer Datei ausführen möchten, die die Syntax des ECMAScript 2015-Moduls verwendet (d. h. import anstelle von require )

  • Erstellen Sie die folgenden Dateien:

./ setupBabel.js (um Babel transpiler zu starten)

%Vor%

./ setupDependencies.js (um Chai und Sinon mit der ES2015-Syntax zu starten)

%Vor%

./ test / codeSpec.js (Beispiel Unit Test mit Chai, Sinon Stubs, Spies und ES2015 Syntax wie Pfeilfunktionen, let und const )

%Vor%
  • Führen Sie Folgendes im Terminal aus, um relevante NPM-Pakete zu installieren:

npm install babel-polyfill babel-register chai sinon mocha

  • Führen Sie die Testsuite mit dem folgenden Terminalbefehl und den folgenden Flags aus:

mocha --require ./setupBabel.js --require ./setupDependencies.js ./test/codeSpec.js

    
Luke Schoen 16.02.2017 07:00
quelle

Tags und Links