Nehmen Sie einen Screenshot von Karma, während Sie Tests in PhantomJS 2 ausführen?

8

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?

    
Fez Vrasta 09.01.2016, 14:38
quelle

2 Antworten

12

Finde einen Weg!

Lösung

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:

%Vor%

Nun können wir mit callPhantom PhantomJS bitten, den Inhalt unserer onCallback -Funktion auszuführen und alle nativen PhantomJS-Methoden zu verwenden.

Verwendung

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.

%Vor%

Packen Sie alle zusammen für die Benutzerfreundlichkeit

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:

karma.conf.js

%Vor%

Helfer

%Vor%

Danksagungen

Ich habe dieses Skript von dieser Antwort bekommen, es angepasst und selbst herausgefunden, wo ich es einsetzen kann, damit es funktioniert Karma.

    
Fez Vrasta 09.01.2016, 15:08
quelle
0

Mein Karma-Eintrag für ein angepasstes Phantomjs, das Schnappschüsse erstellt, sieht folgendermaßen aus:

%Vor%
    
Kieran Ryan 29.11.2016 13:18
quelle