Winkelmesser: Wie man auf volle Ladung von Bootstrapped AngularJS wartet

8

Ich habe eine Bootstrapped Angular (1.2.6) -App. Dies bedeutet, dass es kein explizites ng-app hat. Als solche habe ich alle möglichen Probleme bekommen, die Tests des Protractor-Frameworks zu funktionieren (mit SauceLabs und Grunt-Winkelmesser-Runner).

Die Fehler variieren je nachdem, was ich versuche, aber generell:

%Vor%

Oder ...

%Vor%

Ich habe ein paar Lösungsvorschläge gefunden, die ich ausprobiert habe. Einschließlich der in dieses Rich Threads gefundenen sowie auch hier . Nichts, was ich tue, bringt die Dinge zum Laufen.

Ich habe versucht, angular.resumeBootstrap im Bootstrapping zu verwenden (beachte, dass ich mehrere Varianten ausprobiert habe, ohne Erfolg, einschließlich dem Versuch, eine ng-App programmatisch auf den Dokumentkörper zu setzen):

%Vor%

Der Fehler dafür, wie andere gefunden haben, ist seltsam:

%Vor%

Was komisch / nervig ist, ist, zumindest in der Sauce Labs Sitzung zu sehen, dass dieser Test funktioniert ... es ist nur komisch, dass er zweimal bootstrappt wurde.

Ich habe auch versucht, verschiedene Kombinationen von waitForAngular , wait und anderen im Test selbst zu verwenden. Hier ist eine Variation, die ich versucht habe:

%Vor%

Dies führt zu Fehlern wie dem folgenden:

%Vor%

Ich habe auch versucht, verschiedene Timeouts in der Konfigurationsdatei ohne Erfolg zu erhöhen.

Jede Hilfe wäre sehr willkommen!

    
pjb 06.12.2014, 05:59
quelle

1 Antwort

3

Sie sollten den Test in zwei 'it'-Schritten trennen. So:

%Vor%

Das Problem mit dem Winkelmesser ist, dass jeder Befehl ausgeführt wird, ohne auf den vorherigen Schritt zu warten. Also, ptor.waitForAngular() und ptor.driver.get( 'http://xxx:9000/' ) laufen fast zur selben Zeit. Wenn Sie diese in zwei Schritte aufteilen, bewegt sich der Winkelmesser nach dem ersten 'it'-Schritt weiter.

    
apoh 19.02.2015, 15:30
quelle