Prüfung d3 (und andere SVG-basiert) Web-Anwendungen
Ich habe eine web-Anwendung, die verwendet die d3 Bibliothek für einige komplexe SVG-basierten Visualisierungen.
Ich habe von automatisierten tests für meine server-side-code und JavaScript-Modelle (ich benutze eine MVC-Architektur in meinem JavaScript). Diese laufen auf einem Jenkins CI-server auf jedem commit. Jetzt muss ich herausfinden, wie um zu testen, meine Ansichten.
Wie andere die dieses problem angehen und welche tools verwenden Sie?
Einige Gedanken, die ich habe ...
- Serialisieren der SVG erzeugt und in einer Datei zu vergleichen, um ein baseline -
- Erfassen automatisch ein browser-image und ein image diff
- Etwas anderes?
Dank!
- Was habt Ihr Jungs endlich das zu tun? Wir haben ähnliche Probleme, wo wir die Generierung von Diagrammen mit HighCharts in SVG und wollen sicherstellen, dass die Diagramme korrekt sind. Wir sind wirklich kämpfen.
- Ich ging mit dem Ansatz, den ich speichern unterhalb mit Selen / ImageMagick und es hat gut funktioniert. stackoverflow.com/a/15823644/16779
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Beispiel, das Sie geben, sind für die Prüfung der grafischen Ausgabe. Für diese können Sie verwenden, einen screenshot diff-tool wie PhantomCSS, Sikuli oder roll-up Ihre eigenen mit Resemble.js.
Aber wenn deine Frage ist mehr genrally zum testen D3.js/SVG-basierte apps, wie der Titel schon sagt, sollten Sie sich die D3 test-suite. Die meisten tests brauchen noch nicht einmal eine html-Vorrichtung, weil Sie grundsätzlich das testen der API. Wenn das wichtigste für Sie ist die Konsistenz von dem visuellen Ergebnis, gehen Sie mit einem screenshot diff-tool. Für die navigation und UX-flow, sind Sie besser mit browser-automation wie Selen. Aber für unit-Tests, wo Sie wollen, um sicherzustellen, dass eine einheitliche API und modularer code, die meisten test-frameworks mit spies -, Vorrichtungs-und mocking-Funktionen tun (ich.e, Jasmin, Gelübde, Mokka).
Es klingt wie Selen tun sollten, was Sie suchen. Es treibt den web-browser und daher können Sie überprüfen, was passiert eigentlich im browser statt, vorausgesetzt, dass der SVG korrekt dargestellt werden. Es erlaubt Ihnen, zu spezifizieren unit-tests als eine Serie von Klicks/Tastendrücke und es integriert sich sehr schön mit Jenkins.
Die Lösung, die ich bin derzeit erwägen ist ...
Erfassung von browser und prüfen, ob der graph ist ein guter test. Aber ich habe das Gefühl, dass dies in der Verantwortung der D3 selbst, als unseren code.
War ich auch mit einer ähnlichen Frage. (Meine Frage). Bitte der Kasse die Antwort, die ich es gebucht.