Ich brauche einen Weg, um einen Screenshot während eines Tests zu machen, der QUnit und Karma benutzt, um in PhantomJS 2.0.1 zu laufen
Ich habe diesen Befehl gefunden:
%Vor%Das wirft keinen Fehler, aber scheint nicht zu funktionieren, oder zumindest weiß ich nicht, wo ich nach dem Screenshot suchen soll.
Irgendwelche Hinweise?
Finde einen Weg!
Ich musste meinen benutzerdefinierten benutzerdefinierten Launcher von PhantomJS bearbeiten, indem ich eine Option hinzufügte:
%Vor% Wie Sie sehen, definieren wir die onCallback
-Option, so wird es sein injiziert in das Skript von phantomjs
gestartet.
Das Skript enthält dann:
Nun können wir mit callPhantom
PhantomJS bitten, den Inhalt unserer onCallback
-Funktion auszuführen und alle nativen PhantomJS-Methoden zu verwenden.
Nun können Sie in Ihren Tests die Funktion verwenden:
%Vor%Um einen Screenshot zu erstellen, der im Stammverzeichnis Ihrer Anwendung gespeichert wird.
Außerdem können Sie, wenn Sie fname
definieren, einen benutzerdefinierten Pfad und Dateinamen für Ihren Screenshot definieren.
Ich habe eine praktische Funktion zur Verwendung in meinen Tests erstellt. Die onCallback-Funktion ist auf das notwendige Minimum reduziert. Auf diese Weise wird die gesamte Logik in meiner Testumgebung verwaltet:
Ich habe dieses Skript von dieser Antwort bekommen, es angepasst und selbst herausgefunden, wo ich es einsetzen kann, damit es funktioniert Karma.
Mein Karma-Eintrag für ein angepasstes Phantomjs, das Schnappschüsse erstellt, sieht folgendermaßen aus:
Tags und Links javascript screenshot phantomjs qunit karma-runner