2016-03-31 5 views
0

Meine Frage ist zweifach. Ich verwende Intern als ein Integration/e2e Testing Framework mit ein paar verschiedenen Diensten in verschiedenen clientseitigen JS Frameworks. Ich möchte Flagge zwei Dinge während der Tests in der Lage sein:Überwachung auf Fehler und Fehlerbenachrichtigungen während des Integrationstests

  • API-Aufruf eine Ressource zu holen gibt einen 400 oder 500-Level-Status
  • ein Fehler Hinweis/div einige CSS auf der Seite erscheint passend , aber verblasst relativ schnell

im ersten Fall weg ich so etwas wie ein window.onerror Skript auf dem Client zu verwenden geschaut haben, aber sicher nicht, dass es funktionieren würde, oder das beste in diesem Fall sein.

In der zweiten könnte ich wahrscheinlich auf Fehler div an bestimmten Punkten überprüfen, aber dies würde nicht unbedingt etwas wie ein Autosave abdecken. Was ich wirklich gerne hätte, ist ein Zuhörer während des gesamten Tests.

Antwort

0

Eine onerror Prüfung ist wahrscheinlich die einfachste Lösung. Installieren Sie es einfach auf der Seite zu Beginn des Tests, lassen Sie es global setzen, wenn Fehler auftreten, und überprüfen Sie das Globale am Ende des Tests.

Eine weitere mögliche Option (die ich nicht getestet habe) könnte sein, ein find für ein Fehler-Popup in einer separaten Befehlskette zu starten und es parallel zur Haupt-Testkette laufen zu lassen. Dazu müsste das Zeitlimit für die Suche auf einen relativ hohen Wert gesetzt werden (groß genug, damit der Suchvorgang den gesamten Test durchläuft). Verwenden Sie Promise.all, um die beiden Befehlsketten zu kombinieren, etwa:

var load = this.remote.get('somePage').setFindTimeout(somethingBig); 
var errorCheck = load.findByCssSelector('.errorClass').then(function() { 
    throw new Error("shouldn't have found this"); 
}); 
var test = load.doTestThings(); 
return Promise.all([ errorCheck, test ]); 
Verwandte Themen