Die Datei tests/frontend/lib/mocha.js
ist ziemlich alt: erstmals 2012 mit ba4ebbba3ba6 übergeben, am Tag danach in 7aee98bce82e leicht modifiziert ("machte Testhelfer mehr Cross-Browser-kompatibel").
„Unterschied
Es wäre wahrscheinlich nützlich, die Frontend-Bibliothek zu aktualisieren, wie wir es für die Backend-Bibliothek getan haben.
Dies sollte ein Fall von Besuch sein.
http://youretherpad :9001/tests/frontend/ und stellen Sie sicher, dass es funktioniert.
Einfügen einer neuen mocha.js
Rufen Sie http://youretherpad :9001/tests/frontend/ auf und stellen Sie sicher, dass die Tests wie erwartet ausgeführt werden.
Einige API-Änderungen wurden möglicherweise seit 2012 in Mocha vorgenommen, daher sollten sie als Teil der Pull-Anforderung behoben werden. Sehen Sie sich unsere Beitragsrichtlinien an, bevor Sie eine PR einreichen :)
Relevantes $100 GitPay-Sponsoring: https://gitpay.me/#/task/325
Ich verstehe nicht, warum es hier auf sich selbst umleitet. Es gibt mir einen ERR_TOO_MANY_REDIRECTS
Fehler, wenn ich auf http://youretherpad :9001/tests/frontend zugreife. Wie gehe ich bei der Durchführung der Tests vor?
Nur zu http://192.168.1.51 :9001/tests/frontend/ zu browsen funktioniert für mich.. Versuchen Sie den nachgestellten Schrägstrich?
Versuchte es mit nachgestelltem Schrägstrich auch es gibt mir den gleichen Fehler. Ich führe es unter Windows aus, hat das etwas damit zu tun?
Interessant, funktioniert bei mir nicht unter Windows. Wahrscheinlich hat das mit der Art und Weise zu tun, wie Testdateien zum Ausführen indiziert werden. Wir testen das Backend nie unter Windows (es läuft remote auf Sauce Labs und wir entwickeln meistens unter Linux/Unix, also ...) Ich werde dafür ein separates Problem erstellen.
Lösung auf https://github.com/ether/etherpad-lite/issues/3804
TLDR; Verwenden Sie /index.html ...
@JohnMcLear , ich versuche, Mocha auf die neueste Version (7.x) zu aktualisieren, aber die Bibliothek wurde tiefgreifend geändert und das neue Setup würde die Art und Weise, wie wir die Tests heute durchführen, stark verändern. Mit der neuen Version sollten wir als Paket verwenden, und ich kann auf package.json
sehen, aber so wie wir heute im Browser laufen, verwendet das Projekt ein eigenständiges js.
Soll ich also mit einer Version von mocha.js fortfahren, die mit dem eigenständigen Frontend wie diesem verfügbar ist?
https://github.com/mochajs/mocha/blob/2.2.5/mocha.js
Solange die Änderung ordnungsgemäß durchgeführt wird und wir die Fähigkeit zu st nicht verlieren, sehe ich keine Hindernisse bei der Aktualisierung auf 7.0.
Haben Sie eine Vorstellung von den erforderlichen Schritten?
@muxator , ja, ich habe die js auf https://mochajs.org/#running -mocha-in-the-browser gefunden
Und ich muss die richtigen Änderungen am Runner vornehmen und dann sehen, wie die Tests auf http://0.0.0.0 :9001/tests/frontend/index.html laufen
@muxator , ich konnte Mocha auf die neueste Version aktualisieren, aber es gibt eine große Änderung in der Art und Weise, wie die Reporter erweitert werden. Daher wird diese Implementierung auf runner.js
zur Erweiterung des HTML-Reporters nicht mehr funktionieren:
https://github.com/ether/etherpad-lite/blob/develop/tests/frontend/runner.js#L69
Und die Funktion Base
ist im Mocha-Kern enthalten
Ich versuche verschiedene Ansätze, aber wir können das Modul nicht so erweitern:
https://github.com/mochajs/mocha/wiki/Third-party-reporters
Ich habe folgende Möglichkeiten:
Lassen Sie mich wissen, wenn ich etwas vermisse und warum dieser benutzerdefinierte Reporter wichtig ist
@JohnMcLear
An den Kommentaren sehe ich:
This reporter wraps the original HTML reporter plus reports plain text into a hidden div.
This allows the webdriver client to pick up the test results
Dies ist das Ergebnis mit dem HTML-Reporter:
Es ist einfaches HTML, und ich kann die Klassen mocha.css
einfügen, um etwas Stil zu verleihen, wenn wir mit dieser Lösung fortfahren.
Also mit diesem Ansatz, was ist der eigentliche Unterschied zu.
Alles sieht gleich aus (relativ gesehen). Was ist los? :D
Ja @JohnMcLear , der Trick ist, wo diese erweiterten Ergebnisse im Klartext verwendet werden, ist auf Travis?
Das Herausnehmen dieses erweiterten Reporters kann also Dinge beschädigen, aber ich fürchte, das ist der Weg, es zu tun, sonst werden wir mehr Änderungen haben, wenn wir die Modulimplementierung verwenden.
Ich weiß nicht, ohne mir die Runner-Logik anzusehen, wie die Ergebnisse von mocha > travis tbh übergeben werden;\
@JohnMcLear Ich kann sehen, dass die Runner-Fernbedienung die generierte Ausgabe des benutzerdefinierten Reporters verwendet, also müssen wir sie behalten.
Ich sollte in der neuesten Version in der Lage sein, den benutzerdefinierten Reporter zu erweitern und zu verwenden, wie wir ihn heute haben, mit einigen Änderungen, aber aus irgendeinem Grund kann ich nicht auf Base
von der Mocha-Instanz zugreifen, um den Reporter so zu erweitern, wie Sie es tun heute.
Die aktuelle Implementierung hat Base aus der Bibliothek extrahiert, um sie zu erweitern, aber jetzt ist dies für diese Version nicht möglich.
Also habe ich dieses Problem im Mocha-Repository geöffnet:
https://github.com/mochajs/mocha/issues/4259
Daher würde ich den Reporter mit der Browserintegration nur erweitern, wenn dies ein Fehler ist oder wie wir es tun sollten, da die meisten Beispiele da draußen das Modulmuster verwenden, und hier müssen wir immer noch auf die alte Weise arbeiten, und es sollte ohnehin möglich sein, die aktuelle Implementierung beizubehalten.
Ausgezeichneter Arbeiter, ich weiß es wirklich zu schätzen, dass Sie sich darum kümmern, denn ich hatte eindeutig Recht mit der Annahme, dass ich mit dem Hacken in Mocha überfordert war :P
@alexanmtz wo bist du dazu gekommen?
@JohnMcLear nichts aus dem Problem, das ich auf Mocha erstellt habe.
Also werde ich einen anderen Ansatz versuchen, indem ich Mocha CLI verwende, was in der neuesten Version der richtige Weg ist, und versuchen, die Remote-Runner und die aktuelle Infrastruktur sowie die Art und Weise, wie der Test heute läuft, so wenig wie möglich zu beeinträchtigen.
Ich habe eine PR #4041 @JohnMcLear erstellt , um zu prüfen, ob dies der richtige Weg ist 👍