Ich habe eine einfache Webanwendung mit express.js erstellt und möchte sie mit Jasmine-Knoten . Funktioniert soweit, aber mein Problem ist, dass ich den Server jedes Mal manuell starten muss, bevor ich meine Tests ausführen kann.
Könnten Sie mir helfen, wie ich einen Spec-Helper schreibe, der den Server (mit einem anderen Port als meinem Entwicklungsserver) nur für die Tests ausführt und ihn anschließend wieder abbricht?
Das mache ich:
Ich habe eine server.js -Datei im Stamm meines Knotenprojekts, die den Knotenanwendungsserver (mit Express) einrichtet und zwei Methoden exportiert:
%Vor%Die Datei app.js ist an dieser Stelle einfach:
%Vor%Also wäre die grundlegende Struktur der Dateien / Ordner wie folgt:
%Vor%Wenn Sie diese Trennung verwenden, können Sie mit den Server normal ausführen :
%Vor%.. und / oder erfordern es von einem benutzerdefinierten Knotenscript , das ein Knotenscript (oder eine jake / grunt / whatever-Task) sein könnte, die Ihre Tests wie folgt ausführt:
%Vor% Ich benutze Mocha - was verdammt ähnlich ist - aber das gleiche Prinzip sollte auch gelten: Du könntest require
in deiner app.js
-Datei in einem 'beforeEach'-Hook innerhalb des Hauptteils describe
ausprobieren. Das sollte es für dich anheizen.
Wenn Sie dann einen Schritt weiter gehen wollen, um Ihre Tests während der Entwicklung zu automatisieren, können Sie zu Ihrer Terminalzeile gehen und
ausführen %Vor%Jasmine wird dann jede Datei in Ihrem Projekt hören und wann immer Sie Änderungen vornehmen, wird es zeigen, ob dieser Teil Ihres Codes einen Ihrer Tests durchbricht;)
Tags und Links node.js tdd jasmine express jasmine-node