2014-08-31 10 views
13

Chcę móc przetestować moją aplikację kątową z Kątomierzem. Ponieważ używam RequireJS, nie mogę używać dyrektywy ng-app w moim DOM i dlatego uruchamiam ręcznie Angular z angular.bootstrap.Używanie testu kątomierza z Bootstrapped AngularJS

kątomierz drukuje wyjście błąd jak poniżej:

Error: Angular could not be found on the page http://localhost:1428/ : retries looking for angular exceeded

Wtedy zdałem sobie sprawę, że dokumentacja kątomierz ma ostrzeżenie:

Protractor does not work out-of-the-box with apps that bootstrap manually using angular.bootstrap. You must use the ng-app directive.

Dobrze, Czy istnieje obejście uruchomić testy kątomierz z ręcznie bootstrapped podanie kątowe czy powinienem zacząć uczyć się o alternatywnych pakietach testowych?

+0

Nasze testy kątomierza działają dobrze z RequireJS i ręcznie uruchamianymi aplikacjami. Czy mógłbyś udostępnić więcej kodu? :) – glepretre

Odpowiedz

13

iść do kątomierza confiuration i dodać ten

onPrepare: function() { 
// implicit and page load timeouts 
    browser.manage().timeouts().pageLoadTimeout(40000); 
    browser.manage().timeouts().implicitlyWait(25000); 

    // for non-angular page 
    browser.ignoreSynchronization = true; 

    // sign in before all tests 

} 

on pracował dla mnie

mój pełny plik config wygląda następująco ...

// conf.js 
exports.config = { 
seleniumAddress: 'http://localhost:4444/wd/hub', 
specs: ['../**/*.e2e.js'], 
multiCapabilities: [{ 
browserName: 'firefox' 
}], 

onPrepare: function() { 
// implicit and page load timeouts 
browser.manage().timeouts().pageLoadTimeout(40000); 
browser.manage().timeouts().implicitlyWait(25000); 

// for non-angular page 
browser.ignoreSynchronization = true; 

// sign in before all tests 

} 
} 

Co właściwie się dzieje, że pytasz z kątomierza, aby poczekać na ilość czasu i zignoruj ​​document.ready(), aby dać ci czas na ręczne załadowanie kątowe.

+0

Czy to będzie działać tylko dla stron nieprostokątnych? –

+0

Naprawdę, to obejście może również działać po bootstrapie asynchronicznym kątowo (Mój przypadek polegał na tym, że przekazywałem jako zależności moduły RequireJS z innej aplikacji) –

+0

To nie działa dla mnie, powoduje, że testy działają sporadycznie, ale innym razem elementy nie są gotowe i zawodzą. (IE mogę uruchomić dokładnie ten sam test cztery razy z rzędu i uzyskać jeden błąd.) –