2016-12-22 1 views
13

후 끝날 때까지 나는 엔드 - 투 - 엔드에 각도기를 사용하여 우리의 각 2 응용 프로그램을 테스트하고 싶습니다,하지만 난 메시지와 함께 붙어 :실패 : 기다리는 동안 제한 시간을 초과 비동기 각도 작업 11초

"Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds." 

내 conf 파일.

exports.config = { 
    directConnect: true, 
    specs: ['spec.js'], 

    // For angular2 tests 
    useAllAngular2AppRoots: true, 
} 

크롬이 열리고 웹 사이트도 열리 며 시간 초과가 발생하지 않습니다.

(browser.ignoreSynchronization = true;를 사용하여) 동기화를 비활성화하면 정상입니다. 그러나 나는 "자동 대기"기능을 분실하고 있습니다.이 기능은 각도기 사용의 주요 이점 중 하나입니다.

응용 프로그램은 각도 2를 기반으로합니다. 왜이 기능이 작동하지 않습니까?

개발자가 폴링을하지 않는다고 말했습니다 (Protractor documentation에 따른 가능한 원인 중 하나임). 그건 그렇고, 우리는 websocket 아키텍처를 사용하고 있습니다. 링크가 있는지 나는 모른다.

사실,이 문제를 해결하는 방법을 전혀 모릅니다.

누군가 도와 줄 수 있습니까?

+0

가능한 복제 (http://stackoverflow.com/questions/를 40817733/protractor-test-a-bootstrap-modal-not-angular-page-timeout) –

+0

아래의 해결책을 시도해 볼 수 있습니까? – AdityaReddy

답변

6

당신의 추측이 맞습니다. 이 오류는 angle2 어플리케이션에서 실행중인 미해결 태스크가있을 때 발생합니다.

예, 가장 일반적인 이유는 응용 프로그램이 $ timeout 또는 $ http를 계속 폴링 할 때 각도기가 무기한 대기하고 시간이 초과 될 때입니다. 앱이 기본 시간 초과 값 11 초입니다

다른 시간 제한에 이상 11초

자세한 내용은 here를 참조하십시오 걸리는 곳 그러나이 또한 시나리오에서 발생할 수 있습니다. 여전히 문제를보고하는 경우는 config.js에서 아래 값을 조정하여이를 변경하고 시도하고 볼 수 있습니다

/** 
    * The timeout in milliseconds for each script run on the browser. This 
    * should be longer than the maximum time your application needs to 
    * stabilize between tasks. 
    */ 
    allScriptsTimeout?: number; 
2

일시적으로 대답 here에보고 browser.ignoreSynchronization이 그것을 수정 가능.

browser.ignoreSynchronization = true; 

(오류가 발생합니다 코드)

browser.ignoreSynchronization = false; 
1

는 테스트 케이스를 수정하고 첫 번째 클릭 후 browser.waitForAngularEnabled(false);를 넣어 작동합니다.

그러나 방법은 allScriptsTimeout: 110000conf.js 파일에 기본 시간 제한을 재정의 할 수 있습니다 추천

[각도기는 부트 스트랩 모달 테스트 - 각도없는 페이지 - 타임 아웃]의
관련 문제