2017-02-12 1 views
0

SystemJS + Typescript 환경 (기본적으로 a plunk)에서 Jasmine 테스트를 실행 중입니다.이 테스트에는 Angular 2 테스트 장비가 필요합니다.SystemJS + Typescript 환경의 Jasmine 비동기 부팅

재 스민은 유형 라이브러리 import이 아닌 전역 라이브러리로 의도적으로 사용됩니다.

없음 사양에

이 결과는

콘솔에 오류가 없습니다 발견, 사양은 실행되지 않습니다 :

main.ts

describe('test',() => { 
    it('test',() => { 
    console.log('test'); 
    expect(1).toBe(1); 
    }); 
}); 

나는 이것이 기한 때문이라고 확신한다. o main.ts이 SystemJS와 비동기 적으로로드되므로 Jasmine 부팅 절차를 추가로 실행하여 사양을 선택해야합니다.

매뉴얼에는 default boot configuration in Jasmine이 설명되어 있지만 수동으로 부팅하는 방법을 설명하지는 않습니다.

이 경우 SystemJS 및 글로벌 재스민으로 테스트를 수행하는 방법은 무엇입니까?

답변

1

이유는 jasmine이 검색 및 실행을 시도한 후에 사양이로드되기 때문입니다.

<script> 
    System.import('app').then(window.onload).catch(console.error.bind(console)); 
</script> 
+0

감사 :

은 사양이 system.js에 의해로드 된 후 다시 window.onload를 호출 할 수 있습니다이 문제를 극복하기 위해. 이벤트 핸들러를 직접 호출하는 것은 해킹과 비슷하지만 어떻게 보이는지 [htmlReporter variable] (https://github.com/jasmine/jasmine/blob/v2.5.2/lib/jasmine-core/boot.js#L140))에 도달 할 수 있습니다. – estus

관련 문제