2014-12-19 6 views
4

각도기의 browser.waitForAngular()이 무슨 일을하고 있는지 확인할 수있는 방법이 있습니까?각도기의 waitForAngular에 붙어있는 점을 알려주시겠습니까?

기본적으로 내 protractor 테스트는 페이지를로드하고 요소를 클릭 한 다음로드 할 새 페이지를 기다립니다. "각도기가 11 초 후에 페이지와 동기화되기를 기다리는 시간이 초과되었습니다." 오류; 그러나 $timeout을 사용하지 않고 브라우저의 개발자 콘솔에 해결되지 않은 HTTP 요청이없는 것을 확인할 수 있습니다.

내가 직접 내 브라우저에서 내 테스트와 같은 단계를 재현하고,로드 1 초 이내에, 사실, 안정적인

angular.getTestability(document.body) 
    .whenStable(function() {console.log("holla")}) 

을 실행하고 페이지입니다 것을 볼 수 있습니다.

첫 페이지를로드하는 각도기 테스트를 작성한 다음 browser.get('index.html#second-page')을 사용하면 테스트가 통과됩니다.

저는 각도기에 ignoreSerialization을 설정할 수 있다는 것을 알고 있습니다. 그러나 정직하게 말하면, 저는 Angular 프로젝트에 약간의 교활한 버그가 있다는 점을 염려하고 있습니다. 각도기에서 무슨 일이 벌어지고 있는지 좀 더 자세히 살펴볼 수있는 단계가 있습니까?

+0

그냥로드하는 다음 페이지가 각도가 있거나 비 각도입니까? –

+0

두 페이지 모두 각도가 있습니다. UI-Router를 사용하고 있으므로 다른 페이지를 실제로로드하지는 않습니다. URL의 해시 부분을 설정하여 애플리케이션 상태를 변경하는 것입니다. –

+0

직장 동료가 각도기를 잡고 있던 JavaScript 타임 아웃 (각도 $ 타임 아웃이 아닌)에서 기다리고있는 것을 발견했습니다. 그래도 문제는 여전히 유효하다고 생각합니다. 복잡한 어플리케이션에서 Angular instability의 원인을 추적 할 수있는 방법이 있습니까? –

답변

4

코드에 setTimeout이있는 경우 분도기를 동기화 할 수 없습니다. 대신 $ interval을 사용해보십시오.

관련 문제