Wie Unit Test mit Jasmine und browserifizieren?

8

Gibt es die beste Möglichkeit, den HTML-Reporter von Jasmine mit Code im Browser-Stil auszuführen? Ich möchte auch diesen Kopflos mit phantomjs betreiben können, also die Notwendigkeit für den HTML-Reporter.

    
Abadaba 07.06.2012, 18:03
quelle

5 Antworten

4

Ich glaube nicht, dass es noch ein jasmine-browserify -Paket gibt, und es entspricht nicht wirklich der Vorgehensweise von Browserify / NPM (Vermeidung globaler Exporte).

Im Moment füge ich einfach /node_modules/jasmine-reporters/ext/jasmine.js und jasmine-html.js am oberen Rand von <head> ein und fordere alle meine Angaben in einem Top-Level spec_entry.js , das ich dann als Einstiegspunkt für ein Browserify-Bundle verwende dass ich gleich danach in die <head> stelle. (Beachten Sie, dass Sie, wenn der Einstiegspunkt nicht auf oberster Ebene liegt, aufgrund eines lang andauernden, knorrigen Fehlers in Browserify eine schlechte Zeit haben werden.)

Dies spielt gut mit jasmine-node , solange Sie nicht von einem globalen document oder window ausgehen. Allerdings müssen Sie daran denken, Ihre Angaben in spec_entry.js zu registrieren, es sei denn, Sie möchten Browserify hacken, um Ihre Verzeichnisse nach .spec.js files zu durchsuchen.

Ich wäre sehr an einer eleganteren Lösung interessiert, die jedoch transparent mit Jasmine-Node und browserify arbeiten würde.

    
btown 18.06.2012, 18:23
quelle
8

Ich habe ein detailliertes Beispielprojekt erstellt, das die Jasmin-Tests (und andere) behandelt - siehe Ссылка . Diskussion auf meinem Blogpost

Der Ansatz in diesem Aspekt bestand darin, ein Browserify-Paket für den Hauptquellcode (in dem alle Module verfügbar sind) zu erstellen, und einen für Tests, der für den Hauptquellcode auf extern basiert. Dann können Tests sowohl in PhantomJS als auch in einem echten Browser ausgeführt werden.

    
Amitay Dobo 16.05.2013 23:43
quelle
4

Wenn Sie grunt-watchify verwenden, müssen Sie spec_entry.js nicht erstellen. Verwenden Sie require in Ihren Spezifikationen und bündeln Sie dann Ihre Spezifikationen mit grunt-watchify:

%Vor%

Führen Sie dann Ihre Tests mit

aus %Vor%     
Sava Jcript 17.04.2014 18:01
quelle
1

Da alle obigen Antworten wenig veraltet sind (natürlich bedeutet das nicht, dass sie nicht mehr funktionieren usw.), möchte ich auf Ссылка Dies ist ein Präprozessor für Karma-Läufer. Es kombiniert Testdateien mit allen erforderlichen Abhängigkeiten. Ein solches erzeugtes browserify-Bündel wird an Karma übergeben, das basierend auf der Konfiguration es ausführt. Bitte beachten Sie, dass Sie jedes moderne Testframework (Jasmin, Mocha ...) und Browser (Phantom, Chrome ..) wählen können. Wahrscheinlich ist das genau das, was Sie brauchen:)

    
przemcio 16.03.2016 22:04
quelle
0

Vielleicht möchten Sie auch in Karma schauen. Es ist wirklich einfach einzurichten und es wird nach Änderungen suchen und den Test erneut durchführen. Sehen Sie sich dieses Beispielprojekt an, das Karma verwendet, um ein browserify / react-Projekt zu testen. Sie müssen nur ein paar Abhängigkeiten hinzufügen und eine Datei karma.conf.js erstellen.

Ссылка

    
Randy 06.09.2014 19:43
quelle