web-dev-qa-db-de.com

Wie debuggen Sie Jasmin-Tests mit Resharper?

Ich kann keine Möglichkeit finden, JavaScript-Code zu debuggen (durchzugehen), wenn Jasmin-Tests mit Resharper in Visual Studio 2012 ausgeführt werden. Ich habe versucht, Tests mit Browser (Chrome) auszuführen, aber der Testläufer schließt den Port, sobald der Test ausgeführt wird Daher kann ich keinen Haltepunkt in den Code einfügen. Es wurde auch versucht, in Internet Explorer auszuführen und Haltepunkte in Visual Studio einzufügen, es wird jedoch keine Verbindung zum Prozess hergestellt. Mein Test enthält viele /// Referenzskripts, die Resharper automatisch in den Testläufer einfügt, aber ich möchte dies nicht manuell für jeden Test tun, den ich debuggen möchte. Bitte hilf mir das zu verstehen. Wenn Sie einen Jasmin-Test haben, der fehlschlägt, wie debuggen Sie dann?

31
orad

Versuchen Sie, das Schlüsselwort debugger zu verwenden. Fügen Sie einfach die folgende Zeile zu dem Code hinzu, den Sie debuggen möchten (möglicherweise in der Spezifikation):

debugger;

Es ruft alle verfügbaren Debugging-Funktionen auf. Es funktioniert nicht in IE, aber es funktioniert ziemlich gut in Chrome (Sie haben geschrieben, dass Sie es verwenden, ich denke, es reicht nur für das Debuggen).

Entfernen Sie danach natürlich unbedingt das Schlüsselwort debugger! Vielleicht gibt es keine wirklich einfache Möglichkeit, dies im Produktionscode im Allgemeinen zu vermeiden (falls Sie es nicht nur in spesc verwenden), aber wenn Sie an diesem SO question interessiert sind könnte hilfreich sein.

18
zbynour

Da ich debugger; nicht zur Arbeit bekam, fand ich eine andere Lösung ... Durch das Hinzufügen der folgenden Punkte zu meinem Test wird resharper nicht darüber informiert, dass der Test abgeschlossen ist, sodass wir Debug-Haltepunkte im geöffneten Browser festlegen können (ich benutze Chrome ) und aktualisieren (F5) die Seite.

jasmine.getEnv().currentRunner_.finishCallback = function () {};

Seit Jasmine 2.0 müssen Sie Folgendes verwenden:

ReSharperReporter.prototype.jasmineDone = function () { };

Stoppen Sie die Tests im Fenster "Nachschub Testrunner", wenn Sie fertig sind.

Auch dies kann für QUnit gemacht werden

QUnit.moduleDone = function(){}
33

Wie ich auf gepostet habe - Debuggen von Jasmin-Tests mit Resharper und Phantom js

Ich habe einen Debugger. Um zu arbeiten, indem Sie IE 11 als Testbrowser in den ReSharper-Optionen festlegen. Das Coole ist, dass Sie Ihre Haltepunkte in der Visual Studio-Version des Codes festlegen und mit Visual Studio durchsetzen und debuggen können. Sie müssen wirklich nicht mit dem Browser interagieren.

1
Jason Bowers

Ich weiß, das ist eine alte Frage und diese Antwort ist ein wenig abwegiges Thema, aber wenn Sie den Callback des Chutzpah-Testrunner-Kontextmenüs nicht stören möchten, könnten Sie hier unterstützen. Führen Sie die Tests in resharper/phantomjs aus (damit Sie keine Tabulator-Explosion erhalten) und debuggen Sie in Chrome (oder Ihrem bevorzugten Browser), wenn Sie mit der rechten Maustaste klicken:

Chutzpah Test Runner Kontextmenüerweiterung

0
jolySoft