Karma 테스트 환경 구축하기
시나리오
- OS: MacOS
- Editor: Webstorm
- Server: Node.js
- Framework: Angular.js
- Test: Jasmine
Nodejs 서버에서 Angular.js를 테스트 하기위하여 Karma를 이용하는 환경 구축 시나리오다.
1. 새 프로젝트 만들기
Webstorm에서 Karma라는 새 프로젝트를 만든다.
Webstorm 하단에 Terminal을 눌러 쉘 명령어 창을 연다.
2. 미들웨어 설치
sudo npm i -g karma
를 입력하고 karma를 global로 설치한다.
/usr/local/lib/node_modules/karma
폴더에 karma가 설치된것을 확인할수 있다.
- jasmine-core설치:
npm i jasmine-core
- karma-chrome-launcher 설치:
npm i karma-chrome-launcher
- karma-jasmine설치:
npm i karma-jasmine
node_modules에 4가지 미들웨어가 설치되었다.
3. Angular설치
- angular.js 설치:
bower i angular
- angular-mocks설치:
bower i angular-mocks
- angular-resource설치:
bower i angular-resource
4. Karma 초기화
필요한 미들웨어들이 모두 설치되면
터미널에서
karma init
명령으로 초기화시켜준다.
Which testing framework do you want to use ? 어떤 테스트 프레임웍을 사용할꺼냐? >jasmine Do you want to use Require.js ? Require.js를 사용할꺼냐? > no Do you want to capture any browsers automatically ? 어떤 브라우져를 사용할꺼냐? > chrome What is the location of your source and test files ? 테스트할 리소스와 테스트파일은 뭐냐? > app/**/*.js (app이라는 폴더를 만들어서 작업할꺼임) Should any of the files included by the previous patterns be excluded ? 테스트에서 제외할 파일이 있냐? > Do you want Karma to watch all the files and run the tests on change ? 실시간으로 테스트할거냐? > yes
최종적으로 루트에 karma-conf.js 파일이 생성되었다.
javascript 프레임웍을 등록해야 한다.
만들어진 karma-conf.js에서
이부분을
이렇게 수정해준다.
만들어진 karma-conf.js에서
files: [ 'app/**/*.js' ],
이부분을
files: [ 'bower_components/angular/angular.js', 'bower_components/angular-mocks/angular-mocks.js', 'bower_components/angular-resource/angular-resource.js', 'app/**/*.js', 'app/*.html' ],
이렇게 수정해준다.
5. karma 구동
터미널에
karma start karma-conf.js
명령으로 karma를 구동한다.
크롬이 실행되면서
connected가 뜨면 성공
** 근데 Karma가 뭔가요?
Karma는 테스트 러너다.
실제로 유닛 테스트를 수행하지는 않고,
Jasmine이나 qUnit, Mocha로 유닛테스트 코드를 작성하면
Karma는 실시간으로 테스트 실행해주는 툴이라 할수 있다.
Karma는 테스트 러너다.
실제로 유닛 테스트를 수행하지는 않고,
Jasmine이나 qUnit, Mocha로 유닛테스트 코드를 작성하면
Karma는 실시간으로 테스트 실행해주는 툴이라 할수 있다.
댓글