Mokka + Websturm - Fehlermeldung defekt

Ich versuche, Mokka mit Webstorm Test Runner auf Win 7 zu verwenden.

Ich habe diese Konfigurationsparameter:

Pfad zum Knoten:

C:\Program Files (x86)\nodejs\node.exe

Arbeitsverzeichnis:

D:\creation\software developer\projects\dev\document root\

Pfad zur JS-Datei der Node-App:

C:\Users\inf3rno\node_modules\mocha\bin\_mocha

Anwendungsparameter:

test

Ich habe die folgende Fehlermeldung in der Webstorm-Konsole erhalten

✖ 1 of 1 test failed:

aber nichts davon, welcher Test fehlgeschlagen ist. : S

Wie man es repariert?

(in git bash habe ich eine detaillierte fehlermeldung bekommen, damit mocha gut installiert ist)

Versucht mit verschiedenen Reportern, aber keiner von ihnen scheint zu funktionieren. Das Problem ist mit dem Fehlerobjekt, denke ich. Alles andere wird gut angezeigt.

Schrieb einen benutzerdefinierten Reporter und stellte fest, dass es völlig zufällig ist, ob der Stapel in der Webstorm-Konsole angezeigt wird oder nicht. Die beste Wahl war, es mit process.stderr.write zu drucken, mit console.log oder process.stdout.write erscheint nichts. Ich weiß nicht, warum das so ist. Vielleicht ist es eine Art Zeitüberschreitung, aber ich habe die Zeitüberschreitung auf 9999999 eingestellt.: S: S: S Hmm, vielleicht hat der Webstorm-Läufer eine Zeitüberschreitung, und das hängt davon ab, nicht von den Einstellungen für die Mokka-Zeitüberschreitung ...

Getestet mit diesem Reporter:

exports = module.exports = WebStorm;

/**
 * Initialize a new `WebStorm` test reporter.
 *
 * @param {Runner} runner
 * @api public
 */

 //decribe -> suite
 //it -> test

function WebStorm(runner) {
  var buffer = [];
  var suites = [];
  var fails = [];

  runner.on("suite", function(suite){
     suites.push(suite.title || "''");
  });

  runner.on("suite end", function(suite){
     if (fails.length > 0)
         buffer.push("describe "+suites.join(".")+"\n"+fails.join("\n"));
     fails = [];
     suites.pop();
  });

  runner.on("fail", function(test, err){
      fails.push("  it fail "+test.fullTitle() + err.message);
  });

  runner.on("end", function (){
      process.stderr.write(buffer.length+"\n");
      //process.stderr.write(buffer.join("\n"));
  });
}

Ich habe festgestellt, dass es nicht wirklich darauf ankommt, wie lang der ausgegebene Text ist, sondern wie lange Sie warten müssen, bis er angezeigt wird. Ich denke immer noch, dass es ein Timeout-Problem ist und kein Standardfehler. Die Webstorm-Konsole gibt Folgendes zurück: "Vorgang mit Beendigungscode 59 beendet", was bedeutet, dass ein unerwarteter Netzwerkfehler aufgetreten ist.

Geändert in Jasmin-Knoten, es funktioniert.

Bearbeiten:

Ich habe zu jasmine2 gewechselt, es gab das gleiche Problem unter Windows. Die einfachste Problemumgehung ist das Aufschiebenprocess.exit zum Beispiel mit 1ms. Es kann also nicht vor dem Ende desstdout.write. (Manuelles Leeren der stdout und Aufrufen von exit erst danach ist wahrscheinlich ebenfalls eine funktionierende Lösung.)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage