2010-09-30 30 views
24

Ich habe nach einer guten Möglichkeit gesucht, JavaScript-Komponententests innerhalb der Visual Studio IDE auszuführen. Ich verwende derzeit TestDriven.net, um meine C# -Einheitstests auszuführen, und es ist sehr praktisch, das Ergebnis meiner Tests schnell im Ausgabefenster anzeigen zu können. Ich würde gerne eine ähnliche Erfahrung für JavaScript finden (idealerweise mit TestDriven.net arbeiten).JavaScript-Komponententests innerhalb von Visual Studio ausführen

Ich habe über verschiedene Lösungen gelesen, mit denen Sie JavaScrpt Komponententests ausführen können. Einige haben ihre eigene JS-Engine, während andere wie JS-Test-Driver den Code an die Browser senden und die Ergebnisse abrufen können. Aber ich muss noch etwas sehen, das in VS integriert ist.

Kennt jemand eine Erweiterung, die dies tun könnte?

+0

alles neu hier? – pavsaund

Antwort

23

Nach neun Monaten gibt es jetzt ein paar Antworten auf diese Frage.

I created ein Open-Source-Projekt namens Chutzpah - A JavaScript Test Runner. Mit Chutzpah können Sie JavaScript-Komponententests über die Befehlszeile und innerhalb von Visual Studio ausführen. Es unterstützt auch das Ausführen im TeamCity Continuous Integration Server.

Eine andere Lösung ist Teil der nächsten Version von Resharper. In Resharper 6 gibt es eine integrated QUnit test runner.

+0

Schöner Schritt, um deinen eigenen Test-Runner zu erstellen :). Sieht ziemlich interessant aus. Ich habe persönlich mit jstestdriver gehalten, angesichts der Tatsache, dass es einfach toll ist bei Cross-Browser-Tests mit Build-Server. Auch für die Entwicklung, es ist großartig mit dem snappy jsautotest Wrapper, der alle Tests bei jedem Speichern ausführt. [jstdutil_a_ruby_wrapper_over_jstestdriver] (http://cjohansen.no/en/javascript/jstdutil_a_ruby_wrapper_over_jstestdriver) – pavsaund

+0

Danke, ich habe definitiv einen langen Blick auf jstest Treiber und seine Fähigkeit, über mehrere Browser läuft sehr wünschenswert. Ich plane, Chutzpah schließlich die Fähigkeit hinzuzufügen, jstestdriver und möglicherweise andere Testfahrer zu benutzen. Für die erste Veröffentlichung ging ich mit einem kopflosen Browser, weil es eigenständig ist. Ein Benutzer kann die Bits greifen und einfach laufen und sich nicht darum kümmern, welcher Browser sich auf der Maschine befindet. –

+0

@Matthew Manela Das ist großartig! :) –

12

Es ist möglich, JsTestDriver als Test-Runner in Visual Studio zu verwenden. Sobald ein Server gestartet wurde und Browser angeschlossen sind, können Tests direkt in Visual Studio ausgeführt werden.

Das Konsolenfenster gibt dann die Ausgabe der Testergebnisse. Ich werde hier nicht zur Implementierungsdetails gehen, aber the following how-to sollte genug sein, um Sie mit der tatsächlichen Einrichtung von Visual Studio/JsTestRunner zu beginnen.

Console Ausgabe von Chrome und Internet Explorer (schlechte Test-Namen ignorieren): Console output from chrome and internet explorer

JsTestDriver ist vor allem ein Test-Laufwerkzeug mehrere Browser zu überprüfen. Um gute Komponententests für das Javascript selbst zu erhalten, können Sie andere testspezifische Tools wie JasmineBDD (jasmine to jstestdriver adapter) anschließen.

JsTestDriver öffnet auch für die Möglichkeit, gegen mehrere Browser als Build-Schritt auf Ihrem kontinuierlichen Integration Server zu testen, dh: Hudson (Continuous Integration with Hudson and jstestdriver). Dies ermöglicht es einem Entwickler, bei der lokalen Entwicklung gegen einen oder mehrere bestimmte Browser zu testen, aber dann das Ergebnis gegen einen Bereich von OS/Browser-Kombinationen auf dem Build-Server zu verifizieren.

+0

Das ist ziemlich gut. Es wäre schön, wenn dies in bestehende Testwerkzeuge wie TD.net oder Resharper's Test Runner integriert werden könnte. Ein anderes Problem ist, dass es ein bisschen langsam ist (es muss die Browser starten und an sie anhängen). Es wäre cool, wenn es eine ähnliche Option wie http://www.envjs.com/ mit einer API gäbe, die wir in bestehende Testläufer einbinden könnten. –

+0

Während der lokalen Entwicklung können Sie einfach die Browser öffnen und an den Server anschließen ... ermöglicht einen schnelleren Betrieb.Immer noch ein Drwaback, dass es alle Tests und nicht nur die Tests im aktuellen Kontext ausführt. – pavsaund

+0

Ich hoffe, in TD.net zu schauen. Es ist sicher etwas, das sich lohnen könnte. Ich habe noch nie envjs benutzt, also bin ich mir nicht sicher, wie das eigentlich funktioniert. – pavsaund

1

Gerade gefunden diesen Artikel (und diese Frage) bei der Suche nach der gleichen Sache.

Integrating JavaScript Unit Tests with Visual Studio - Steven Walther

Es macht eine Menge Arbeit auf sie haben, aber es scheint, dass es wirklich eine schöne Interaktion bringt. Sicherlich lohnt sich der Aufwand, wenn Sie an einer umfangreichen JavaScript-Anwendung arbeiten.

Verwandte Themen