Karma를 사용해 브라우저 테스트를 진행하다보니 메모리가 부족해서 중간에 테스팅이 멈추는 현상이 발생했다. 브라우저에서 테스팅이 종료되기 전까지는 메모리를 해제하지 않고 계속 잡고 있다보니 테스트 종료까지 6MB 정도의 메모리가 점유되었는데 개발 환경에서 굉장한 부담이 되었다. 브라우저 내에서 테스트가 종료되면 메모리가 해제된다는 점으로 볼 때 테스팅을 여러 브라우저 윈도우로 분할해 실행하면 순간 최대 메모리 점유율을 낮출 수 있다. karma-parallel 패키지를 사용하면 테스팅을 다중 브라우저 윈도우에서 분할해 실행할 수 있다. 사용법도 쉽다. 다음 명령을 통해 설치하고 npm install --save-dev karma-parallel 기존에 사용하던 karma 설정에 다음과 같이 추가하면 된..
Karma에는 coverage를 생성해주는 모듈이 존재한다. karam-coverage라는 것인데, Istanbul 라이브러리를 활용해 구현되었고 이것 자체는 기본적으로 ES6를 지원하지 않는다. ES6 코드에 대한 coverage 생성을 위해 다음과 같은 삽질을 진행했다. 1. mocha + instanbul 조합으로 karma-coverage 없이 해보자 문제1) 브라우저 API를 써야하는데 어떻게 하지? - 방법: jsdom 라이브러리를 활용한다. 문제2) 테스트에서 필요한 외부 리소스는 어떻게 불러오지? - 방법: jsdom에 옵션을 활용한다. {runScripts: "dangerously", resources: "usable"} 문제3) 외부 라이브러리에서 필요로하는 각종 브라우저 API는 어떻..
- Total