programing

AngularJS, Karma/Jasmine 테스트는 왜 이렇게 느리게 실행됩니까?

minimums 2023. 2. 22. 21:38
반응형

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

반응형