Wenn ich ein npm-Paket erstelle, würde es manchmal die Notwendigkeit geben, die alte Version des Abhängigkeitspakets zu verwerfen.
Wenn die neue Version eine neue API hat, kann ich den Code in diesem Muster schreiben:
%Vor% Und mit diesem Muster, wenn ich den Test schreiben möchte, kann ich nur den Code installed version
testen. Der Code der anderen Version kann nicht getestet werden.
Als reales Beispiel hat React v16 in React v15 und v16 eine neue API Portal . Vor der Veröffentlichung von Portal hat v15 unstable_renderSubtreeIntoContainer
api, um ähnliche Funktionen zu realisieren.
Also wäre der Code für React wie folgt:
%Vor% Also ich möchte fragen, gibt es irgendeine Methode, mit different dependency version
zu testen?
Zur Zeit denke ich an eine Methode, die andere Version erneut zu installieren und zu testen. Aber es kann nur lokal tun. Es kann nicht auf ci arbeiten und es kann nicht in Deckung zusammen zählen.
Ich denke, das ist nicht nur für den Reaktionstest. Es kann sich im node.js-Test befinden. Jeder Vorschlag kann diskutiert werden.
Aktualisiert
Diese Frage hängt möglicherweise mit der Installation von two versions dependency
in npm zusammen. Aber ich weiß, derzeit zwei Versionen installieren Abhängigkeit ist nicht praktikabel.
Hier ist eine mögliche Lösung, nicht sicher, dass es wie erwartet funktioniert. Aber Sie werden eine Richtung haben, um vorwärts zu gehen.
package.json
%Vor% Hinweis: In der obigen package.json
Datei habe ich einen neuen Schlüssel customDependecies
hinzugefügt, den ich für die Installation mehrerer Abhängigkeiten verwenden werde. Hier verwende ich body-parser
Paket für die Demo. Als nächstes brauchen Sie eine Datei, die dieses key
lesen und die Deps installieren kann.
install-deps.js
%Vor% Hier installiere ich die Deps nacheinander im Ordner tmp
und nachdem ich sie installiert habe, verschiebe ich sie in den Ordner ./node_modules
.
Sobald alles installiert ist, können Sie die Versionen wie folgt überprüfen
index.js
%Vor%Hoffe, das wird deinem Zweck dienen.
Erstellen Sie 3 separate Projekte (Ordner mit package.json) und einen freigegebenen Ordner:
my-test
). Exportieren Sie eine Funktion, um den Test auszuführen; my-test
und Abhängigkeit v1 importiert. Exportieren Sie eine Funktion, die die Testfunktion in my-test
. my-test
und Abhängigkeit v2 importiert. Exportieren Sie eine Funktion, die die Testfunktion in my-test
. Sie müssen sie separat ausführen. Erstellen Sie einen separaten Projektordner für jede Abhängigkeitsversion. Ex. Reagieren10, Reagieren11, Reagieren12. Jeder hat seine eigene package.json
, die für die korrekte Version angegeben ist. Wenn Sie die Tests integration
und / oder versioned
ausführen, führen Sie Ihre Standard-Komponententests für jede Version aus, aber es kann auch ratsam sein, diesem Ordner versionsspezifische Komponententests hinzuzufügen.
Das Erstellen einer make
-Datei würde Ihnen das Leben bei der Ausführung Ihrer vollständigen Testsuite erleichtern. Wenn Sie dies tun, können Sie dies leicht in CI integrieren.
Tags und Links javascript testing node.js npm reactjs