2017-04-12 2 views
2

Seit kurzem verwende ich Winkelmesser für E2e-Tests für eine Angular-Anwendung.Winkelmesser: keine Winkelanwendung

In letzter Zeit funktionieren die e2e-Tests nicht mehr, weil Winkelmesser auf der Website nach Angular sucht, aber nicht findet. Ich habe dies als issue gepostet, weil ich auch das Problem mit ihrer Demo-App habe. Stellt sich heraus, die Demo-Anwendung ist kaputt, aber das behebt mein Problem nicht.

Das spezifische Ergebnis, wenn ng e2e Ausführung:

[15:00:22] E/protractor - Could not find Angular on page http://localhost:4200/ : angular never provided resumeBootstrap 
    HomePage tests 
    ✗ should have a title 
     - Failed: Angular could not be found on the page http://localhost:4200/.If this is not an Angular application, you may need to turn off waiting for Angular. 
     Please see https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load 

Mit einem weiteren Fehler kurz nach dem folgenden:

- Failed: Error while waiting for Protractor to sync with the page: 
    "Cannot read property '$$testability' of undefined" 

Mit einer frischen Demo-Anwendung ng new blabla ich mit diesen Fehlern nicht bekommen. Es muss also etwas mit einer Anfrage zu tun haben, auf die der Winkelmesser wartet, aber nie gelöst werden kann.

Also meine Frage ist: - Hat auch jemand dieses Problem? - Wenn ja, gibt es Schritte, um zu überprüfen, wo der Winkelmesser stecken bleibt, damit ich das beheben kann? - Oder ist das ein Problem in Winkelmesser?

Hinweis: Bei Verwendung von browser.ignoreSynchronization = true wird der Winkelmesser nicht mit Angular synchronisiert und die Spezifikationen laufen, aber ich möchte die Winkelmesser-Funktionen verwenden, daher ist dies nicht als langfristige Lösung erwünscht.

Hinweis: Die Anwendung verwendet Angular, nicht AngularJS

+1

Überprüfen Sie für ng-app-Direktive in Login/index.html Seite. In welchem ​​Tag ist es Platz? –

+0

In der Datei index.html ist keine ng-app-Direktive erforderlich, da es sich um eine Angular-App und nicht um AngularJS handelt. Ich versuchte es trotzdem, um zu sehen, was passieren würde, aber endete mit mehr Fehlern ... – brvh

+0

Okay, bevor ich 'ng-app =" app "' in meinem body-tag hinzufügte, der völlig Winkelmesser zusammenbrach. Wenn Sie jedoch nur 'ng-app' in das body-tag einfügen, scheint das der Trick gewesen zu sein. Ich verstehe nicht warum und ob das der richtige Weg ist, aber zumindest jetzt keine Fehler mehr. – brvh

Antwort

1

Okay, ich habe zwei mögliche Wege, um dieses gefunden.

Die erste Lösung ist hinzuzufügen: ... , "typeRoots": [ "../node_modules/@types" ] auf Ihre tsconfig.e2e.json-Datei, die das Problem löst. Dies wurde nicht in der generierten Datei von @angular/cli enthalten. Die andere Lösung ist ng-app zu dem body-Tag der Datei index.html hinzuzufügen, obwohl ich diese Lösung nicht bevorzuge, da es eher wie ein Hack (Vermischen von AngularJS mit Angular) als die andere Lösung aussieht.

+0

Art von nicht verwandten, aber nur für den Fall, dass es jemand anderem hilft ... wir hatten einen freien Checker, der ein verwendet continuous setTimeout und es verursachte Winkelmesser zu denken, dass die App nie fertig geladen hatte und diesen Fehler warf. – joshhunt

Verwandte Themen