2015-04-30 14 views
25

Ho riscontrato i timeout intermittenti attribuiti alle FAQ del goniometro sull'uso del timeout $ per il polling (AKA: il timeout waitForAngular). Mi chiedo se fallisce anche nei casi non è il polling. Per il mio team viene più alla luce poiché facciamo affidamento sui componenti del materiale angolare. Sono pesanti nelle interazioni di animazione con l'uso costante di $ timeout (func, 0). Questa domanda è simile a issue #29966301, ma si concentra su un possibile problema tra materiale angolare e goniometro. Sono davvero interessato a sapere come la gente che utilizza pesantemente il materiale angolare e il goniometro si occupano di tali problemi se li incontrano affatto.Vi sono problemi nell'utilizzo del materiale angolare con goniometro per il test E2E?

Il punto interessante è che non ho visto né nei siti github del goniometro né del materiale angolare alcun utilizzo delle capacità dell'altro. Dal momento che entrambi sono librerie angolari provenienti dallo stesso gruppo in Google, @juliemr e la banda protrattica possono parlare con @ThomasBurleson e il gruppo Materiale di casi di utilizzo completi e test E2E per materiale angolare che utilizzano il goniometro per eliminare questi problemi .

+0

Non esattamente e rispondere, ma quando si tratta di animazioni, ho utilizzato con successo le attese esplicite con le condizioni previste (http://stackoverflow.com/a/29151849/771848). – alecxe

+0

In realtà ho iniziato a usare l'EC dappertutto. Ha ridotto il verificarsi di tali problemi, ma si verificano comunque a intermittenza. –

+0

Puoi fornire un esempio concreto? (Un frammento dell'HTML e del test che sta incontrando problemi?) –

risposta

1

Bene goniometro è progettato per testare angolare, quindi se si utilizza la funzione waitForAngular e il vostro sito è angolare non si dovrebbe usare che, si dovrebbe fare il seguente test beforeeach:

browser.ignoreSynchronization = false; 

e si può fare questo per rendere i test più velocemente e probabilmente contribuire a rimuovere il problema di timeout, sul vostro file goniometro-conf.js aggiungere questo codice:

...

onPrepare: function() { 
    var disableNgAnimate = function() { 
     angular.module('disableNgAnimate', []).run(function($animate){ 
      $animate.enabled(false); 
     });  
    }, 
    browser.addMockModule('disableNgAnimate', disableNgAnimate); 
}, 

...

e forse dovresti controllare questo video fuori.

+1

ignoreSynchronization sembra rovinare in modo massivo i test in quanto sembrerebbe essere il modo in cui il team di Protractor intendeva utilizzarlo. Ho disabilitato le animazioni e ancora il test fallisce sporadicamente in attesa su Angular. Succede se lo sto eseguendo in connessione diretta o tramite Selenium. –

1

Vorrei aggiungere che disabilitare ngAnimate potrebbe non essere sufficiente. Potrebbe anche essere necessario disabilitare l'animazione CSS di Angular Material iniettando CSS all'interno dell'opzione 'onPrepare' del goniometro. (How to disable animations in protractor for angular js application).

+0

puoi aggiungere una descrizione nella tua risposta, con link. – Vikrant

+0

Non sono sicuro di aver capito il tuo commento. Vuoi dire che dovrei copiare/citare il contenuto del link laggiù qui? – dhwang

Problemi correlati