Mocha는 Node.js를 위한 테스트 프레임워크이다. test 스크립트가 변경되었을 때 계속 감시하면서 다시 mocha 테스트를 해주도록 Continuously Testing이 가능하도록 Nodemon을 적용해 본다
1) Mocha 와 Nodemon 설치하기
- mocha 설치
$ npm install -g mocha
npm http GET https://registry.npmjs.org/mocha
... 중략 ...
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz
C:\Documents and Settings\UserXP\Application Data\npm\mocha -> C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\bin\mocha
C:\Documents and Settings\UserXP\Application Data\npm\_mocha -> C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\bin\_mocha
mocha@1.8.1 C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha
├── growl@1.7.0
├── commander@0.6.1
├── diff@1.0.2
├── debug@0.7.2
├── ms@0.3.0
├── mkdirp@0.3.3
└── jade@0.26.3 (mkdirp@0.3.0)
- nodemon 설치하기
+ node.js를 기반으로 개발할 때 사용한다
+ hang이 걸리면 자동으로 re-running 시켜준다
+ 여러 디렉토리를 감시할 수 있다 (--watch 옵션적용하면 내용 변경시 node auto restart)
$ npm install -g nodemon
npm http GET https://registry.npmjs.org/nodemon
npm http 200 https://registry.npmjs.org/nodemon
npm http GET https://registry.npmjs.org/nodemon/-/nodemon-0.7.2.tgz
npm http 200 https://registry.npmjs.org/nodemon/-/nodemon-0.7.2.tgz
C:\Documents and Settings\UserXP\Application Data\npm\nodemon -> C:\Documents and Settings\UserXP\Application Data\npm\node_modules\nodemon\nodemon.js
nodemon@0.7.2 C:\Documents and Settings\UserXP\Application Data\npm\node_modules\nodemon
2) Mocha 테스트 코드 만들기
- mocha가 수행되는 위치의 test 디렉토리밑의 .js 파일을 자동 테스팅한다
- BDD 테스트 코드
- mocha 수행
// test 디렉토리가 존재
$ ls
test
// mocha 명령을 수행하여 test 디렉토리의 mocha_sample.js 를 자동 수행하여 준다
$ mocha
.
1 test complete (3 ms)
3) nodemon으로 mocha 수행하기
- nodemon을 mocha 위치를 지정하여 준다
///////////////////////////////////
// 정상 테스트 코드
$ nodemon "C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\bin\mocha"
7 Feb 21:24:52 - [nodemon] v0.7.2
7 Feb 21:24:52 - [nodemon] watching: d:\Development\mocha
7 Feb 21:24:52 - [nodemon] starting `node C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\bin\mocha`
.
1 test complete (3 ms)
7 Feb 21:24:52 - [nodemon] clean exit - waiting for changes before restart
/////////////////////////////////////
// 코드를 수정하며 에러 발생
// indexOf(0) 을 indexOf(1) 변경
7 Feb 21:26:00 - [nodemon] starting `node C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\bin\mocha`
.
× 1 of 1 test failed:
1) Array #indexOf() should return -1 when the value is not present:
AssertionError: -1 == 0
at Context.<anonymous> (d:\Development\mocha\test\mocha_sample.js:6:14)
at Test.Runnable.run (C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\lib\runnable.js:213:32)
at Runner.runTest (C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\lib\runner.js:343:10)
at Runner.runTests.next (C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\lib\runner.js:389:12)
at next (C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\lib\runner.js:269:14)
at Runner.hooks (C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\lib\runner.js:278:7)
at next (C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\lib\runner.js:226:23)
at Runner.hook (C:\Documents and Settings\UserXP\Application Data\npm\node_modules\mocha\lib\runner.js:246:5)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
7 Feb 21:26:01 - [nodemon] app crashed - waiting for file changes before starting...
- 위의 명령을 넣고 C:\Documents and Settings\UserXP\Application Data\npm\cmocha.cmd 파일을 만든다
- cmocha.cmd를 수행하면 위와 똑같이 수행위치 하단에 test 디렉토리가 있다면 continuous mocha를 수행한다
<참조>
- 원문 : Automating Testing with Mocha and WebStorm
- Mocha 소개
'Testing, TDD > Test First' 카테고리의 다른 글
[Backbone.js] 클라이언트 코드를 Mocha로 TDD 수행하기 (0) | 2013.03.20 |
---|---|
[Casper.js] Backbone.js 테스트를 위한 선택 (0) | 2013.03.13 |
[Mocha] JavaScript Testing 하기 (0) | 2013.02.16 |
[Unit Test] Clean Code를 만들기 위한 방법 (0) | 2013.01.08 |
[JUnit] 기본 사용하기 (0) | 2012.10.25 |