2016-11-08 1 views
-1

Ich habe ein Skript, das ich durch den Aufruf node filename ausführen. Ich versuche eine bestimmte Funktion in dieser Datei zu testen. Das Problem ist, wenn ich die Datei wie app = require('../app') benötige, läuft das gesamte Skript und ich will nur auf die exportierten Funktionen zugreifen. Gibt es eine Möglichkeit zu verhindern, dass die Skriptfunktionen ausgeführt werden, wenn die Datei importiert wird?Wie zu verhindern, Skript-Funktion ausgeführt werden, wenn eine Datei in Node.js erforderlich

Antwort

-1

Was Sie im Grunde wollen, ist, das Modul, das Sie benötigen, teilweise auszuführen.

Also die Antwort ist Nein, es sei denn, Sie den Code dieses Moduls patchen.

0

Die Antwort auf die Frage "kann ich das Skript stoppen zu stoppen", um Unit-Tests zu tun ist im Wesentlichen keine. Es gibt jedoch eine Reihe von Optionen, die Sie möglicherweise hilfreich finden. Die erste besteht darin, Ihr Knotenmodul modularer zu gestalten, indem Sie die Aktionen, die auf require ausgeführt werden, herausnehmen. Mein Vorschlag an, dass es zu ändern, so dass es ein Argument:

node filename run 

Wenn das ‚run‘ Argument vorhanden ist, das regelmäßige Aktionen Feuer. Dadurch können Sie in der Datei, die immer das Skript ausführt, benötigen, aber ohne den 'run' führt es nicht die Aktionen aus, die Sie nicht wollen. Sie könnten sogar eine "Test" -Option haben, um es im Testmodus zu starten. Eine zweite Option, die meiner Meinung nach weniger hilfreich ist, besteht darin, die zu testende Funktion in eine eigene Datei zu verschieben und sie in den Hauptbereich zu integrieren. Sie können es dann für einen separaten Test bereitstellen.

Verwandte Themen