2.6.8
https://jsfiddle.net/chrisvfritz/50wL7mdz/
Es wird aus der Datei vue / dist / vue.js der neuesten Version geworfen, die ich derzeit zu isolieren versuche, aber es scheint mit dem kürzlich hinzugefügten neuen Code verbunden zu sein. Fügt so schnell wie möglich weitere Schritte hinzu, wenn Sie dies immer noch nicht beachten.
1) mit diesem Repo repliziert - https://github.com/vuejs/vue-test-utils-mocha-webpack-example
2) Klonen Sie es
3) npm i
4) npm Test - kein Fehler
4) npm update vue
5) npm test - ReferenceError: Leistung ist nicht definiert
Schöne Grüße,
Plamen
Kein Fehler beobachtet
Ein Fehler wird beobachtet
Bitte geben Sie einen Repro an, wenn Sie Fehler melden
Hallo @posva ,
Das Problem wurde noch nicht mit einem Online-Editor repliziert. Ich habe Schritte mit einem Projekt von github im Abschnitt Schritte zur Reproduktion bereitgestellt.
Schöne Grüße,
Plamen
Das, mit dem Sie verlinkt haben, ist ein archiviertes und veraltetes Beispiel. Ein Repro muss nicht jsfiddle sein, es kann eine HTML-Datei sein (oder nur der Inhalt davon). Es sollte auch keine anderen Abhängigkeiten wie Mokka oder Vue-Test-Utils enthalten (dies könnte ein Problem bei diesem Paket sein). Prost.
Danke fürs Zurückschreiben!
Hm - ich werde einen anderen Ansatz versuchen - 'Leistung', die sich in dieser Zeile befindet, wird an keiner Stelle in der Datei deklariert. Wir haben eine window.performance und eine config.performance, aber ich sehe keine globale 'Performance'. Es kam mit der neuesten Version, da hier nicht vorhanden ist.
Sobald Sie eine statische Analyse der Datei ausführen, wird diese ausgelöst.
Schöne Grüße,
Plamen
Auch das bekommen. Ich habe eine Warnung von meinem CI erhalten, nachdem Vue auf 2.6.9 aktualisiert wurde (ich verwende Renovate, um die Deps auf dem neuesten Stand zu halten).
Es scheint, dass in jsdom Umgebung:
> window.performance
Performance {}
> performance
ReferenceError: performance is not defined
Wir müssen also window.performace
anstatt performance
direkt aufzurufen, damit der Code in jsdom korrekt ausgeführt wird.
Okay, ich glaube, ich habe das Menü geöffnet, bevor Sie die Etikettenverbesserung hinzugefügt haben, und nach dem Hinzufügen des PR-Etiketts nach außen geklickt, sodass es entfernt wurde. Lustiger Randfall
Es sollte beachtet werden, dass JSDOM zwar eine Unterstützung von performance
über process.hrtime
, ich jedoch nicht garantieren kann, dass der aktuelle Hack mit performance
in der JSDOM-Umgebung immer wie erwartet funktioniert ( es unterscheidet sich schließlich von der Implementierung des Browsers).
@posva 😂
Bis dies veröffentlicht ist, besteht eine Problemumgehung darin, nach der JSDOM-Registrierung die folgenden Zeilen hinzuzufügen:
// eslint-disable-next-line no-undef
global.performance = window.performance;
Bis dies veröffentlicht ist, besteht eine Problemumgehung darin, nach der JSDOM-Registrierung die folgenden Zeilen hinzuzufügen:
// eslint-disable-next-line no-undef global.performance = window.performance;
Tut mir leid, dass ich dumm bin, aber wo füge ich die folgende Zeile hinzu, da die JSDOM-Registrierung in Vue CLI 3 und cli-plugin-unit-mocha (keine setup.js) abstrahiert ist?
Danke für die Hilfe...
// eslint-disable-next-line no-undef
global.performance = window.performance;
Selbe Frage. Wo füge ich die folgenden Zeilen hinzu?
@theonlychase Ich habe es in meinem Haupttest-Einstiegspunkt test/setup.js
im selben Verzeichnis abgelegt, in dem sich auch Ihr require('jsdom-global')
Unten unter --require
Flagge angegeben.
"test": "mocha-webpack --webpack-config webpack/webpack.config.test.js --require test/setup.js reporter mocha-bamboo-reporter"
Hilfreichster Kommentar
Es scheint, dass in jsdom Umgebung:
Wir müssen also
window.performace
anstattperformance
direkt aufzurufen, damit der Code in jsdom korrekt ausgeführt wird.