Etherpad-lite: Frontend-Tests: veraltete mocha.js-Version

Erstellt am 28. Juli 2018  ·  21Kommentare  ·  Quelle: ether/etherpad-lite

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

  • var query = Mocha.utils.parseQuery(window.location.search || '');
  • if (query.grep) mocha.grep(query.grep);
  • //var query = Mocha.utils.parseQuery(window.location.search || '');
  • //if (query.grep) mocha.grep(query.grep);
    ```

Es wäre wahrscheinlich nützlich, die Frontend-Bibliothek zu aktualisieren, wie wir es für die Backend-Bibliothek getan haben.

stale code tests

Alle 21 Kommentare

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?

https://github.com/ether/etherpad-lite/blob/4ee5ddb496bdd3ab107efa26a001a87ac343fd76/src/node/hooks/express/tests.js#L60 -L63

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:

  1. Ich kann den benutzerdefinierten Reporter entfernen und den vorhandenen HTML-Reporter verwenden (die Tests laufen).
  2. Als Modul in einem Node-Server mit dem CLI ausführen (es erfordert viele Änderungen, wie die Tests heute ausgeführt werden)

Lassen Sie mich wissen, wenn ich etwas vermisse und warum dieser benutzerdefinierte Reporter wichtig ist

  1. Wie ist die Benutzererfahrung des bestehenden HTML-Reporters im Vergleich zur aktuellen Lösung? Screenshot wäre schön. Wir brauchen die Berichterstattung, um mit Travis als Randbemerkung zu arbeiten.

@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:
pageshot of 'Frontend tests' @ 2020-04-27-2126'59

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.

  1. die Person, die die Tests durchführt (abgesehen von geringfügigem Styling)
  2. wie Tests ablaufen.
  3. Wie werden Tests (Erfolg/Fehler) an den Läufer > Travis gemeldet?

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 👍

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen