Wenn ich ein npm-Paket erstelle, würde es manchmal die Notwendigkeit geben, die alte Version des Abhängigkeitspakets zurückzusetzen.Testen Sie zwei verschiedene npm-Paketversionen zur gleichen Zeit
Wenn die neue Version neue api hat, kann ich den Code in diesem Muster schreiben:
import pkg from 'some-pkg';
const isNewVersion = pkg.newVersionApi !== 'undefined';
if (isNewversion) {
pkg.newVersionApi();
} else {
pkg.oldVersionApi(); // backward compatible api
}
Und mit diesem Muster, wenn ich den Test schreiben will, kann ich nur den installed version
Code testen. Der Code der anderen Version kann nicht getestet werden.
Als reales Beispiel in React v15 und v16 hat React v16 neue API Portal. Vor der Veröffentlichung von Portal hat v15 unstable_renderSubtreeIntoContainer
API, um ähnliche Funktion zu realisieren.
So ist der Code für wie Reagieren wäre:
import ReactDOM from 'react-dom';
const isV16 = ReactDOM.createPortal !== 'undefined';
if (isV16) {
ReactDOM.createPortal(...);
} else {
ReactDOM.unstable_renderSubtreeIntoContainer(...);
}
Deshalb möchte ich fragen, ist es eine Methode, mit different dependency version
zu testen?
Derzeit 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 zusammen in der Berichterstattung zählen.
Ich denke, das ist nicht nur für Reaktionstest. Es kann sich im node.js-Test befinden. Jeder Vorschlag kann diskutiert werden.
Aktualisiert vielleicht
Diese Frage bezieht sich two versions dependency
in npm zu installieren. Aber ich weiß, derzeit zwei Versionen installieren Abhängigkeit ist nicht praktikabel.
K.I.S.S. Prinzip: Die schnellste (und am wenigsten technische) Lösung besteht darin, zwei separate Kopien Ihrer App zu verwenden, die jeweils die verschiedenen Paketversionen enthalten, die Sie testen möchten. Dies ist mit 'git' trivial, da Sie entweder 1) Ihre App zweimal klonen oder 2) zwei getrennte Zweige verwenden können. –
Das stimmt. Die Verwendung einer separaten Verzweigung ist eine Möglichkeit. Aber wenn dies ein Open-Source- oder ein Co-Working-Projekt ist. Es ist schwierig, das Zusammenführungsproblem zu steuern. Da wir den Mitwirkenden sagen müssen, dass sie der Test-Roadmap folgen sollen, aktualisieren Sie Ihre Änderung auf beiden Seiten und testen Sie sie. –