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에서

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가 뜨면 성공
Jasmine으로 Angular 테스트 하는것은 다음으로 넘길께요~

-> jasmine html 리포터 사용하기


** 근데 Karma가 뭔가요?
Karma는 테스트 러너다.
실제로 유닛 테스트를 수행하지는 않고,
Jasmine이나 qUnit, Mocha로 유닛테스트 코드를 작성하면
Karma는 실시간으로 테스트 실행해주는 툴이라 할수 있다.





무료다운로드: https://apzw3.app.goo.gl/sheet

댓글

이 블로그의 인기 게시물

jboss AS 7.1에서 404에러 페이지 설정하기

CentOS 7 인터넷 연결하기

MacOSX에서 MongoDB 설치&환경설정