AngularJS, Karma/Jasmine 테스트는 왜 이렇게 느리게 실행됩니까?
저는 Angularjs 앱에 대해 실행되는 간단한 카르마/재스민 단위 테스트를 몇 가지 가지고 있습니다.최신 버전의 Chrome을 사용하여 WebStorm IDE에서 테스트를 실행합니다.
테스트 스위트가 매우 빠르게 실행될 수 있습니다(0.24초).
동일한 코드에 대한 동일한 테스트 스위트의 실행 속도가 매우 느릴 수 있음(120초)
나는 모든 상식적인 해결책을 시도해 보았다.나는 내가 무엇을 잘못하고 있는지 알아내려고 인터넷을 샅샅이 뒤졌다.
시험이 왜 이렇게 느리게 진행되나요?
답은 매우 간단하다.
저는 크롬을 사용하여 카르마 서버를 실행하고 있습니다.Karma 서버를 처음 시작하면 Chrome 인스턴스가 최대 창으로 시작됩니다.따라서 자연스럽게 이 작업을 최소화하여 테스트 실행 상황을 확인할 수 있습니다.
문제는 Chrome이 CPU 사이클의 최소 탭 또는 보조 탭(스위치드 탭)을 부족하게 만든다는 것입니다.
따라서 Karma 서버를 실행하는 브라우저 인스턴스를 최소화하거나 다른 탭으로 전환하면 Karma 서버에 CPU가 심각하게 부족하여 테스트를 완료하는 데 오랜 시간이 걸립니다.
해결책은 카르마 탭을 활성 상태로 유지하는 것입니다.브라우저 창은 다른 창 뒤에 숨길 수 있지만 카르마 탭은 선택한 탭이어야 하며 브라우저를 최소화해서는 안 됩니다.
이러한 간단한 규칙을 따르면 테스트가 항상 최대 속도로 실행됩니다.
바이오프랙탈은 자신의 질문에 답했고 당신은 그렇게 할 수 있어요또한 팬텀에서 실행되도록 테스트를 설정할 수 있습니다.JS 또는 Chrome Headless: 기본적으로 장치 테스트를 명령줄에서만 실행할 수 있으므로 실제 브라우저에 대한 영향을 제거할 수 있습니다.
언급URL : https://stackoverflow.com/questions/19683846/why-are-my-angularjs-karma-jasmine-tests-running-so-slowly
'programing' 카테고리의 다른 글
| SQL Server에서의 지연 가능한 제약 조건 (0) | 2023.02.22 |
|---|---|
| AngularJS App: .js 파일을 index.html에 포함하는 방법 (0) | 2023.02.22 |
| JAVA에서 JSONArray를 정렬하려면 어떻게 해야 합니까? (0) | 2023.02.22 |
| React에서 양식 레이블의 고유 ID를 생성하는 방법 (0) | 2023.02.22 |
| ESLint 오류로 인해 create-react-app을 컴파일할 수 없습니다. (0) | 2023.02.22 |