typescript 프로젝트의 unittest에 사용하는 패키지는 몇 가지가 있는데 각각의 특징은 다음과 같습니다.
- Mocha/Chai 는 따로 파일을 작성하지 않아도 좋습니다만,
- jasmin은
jasmin.json
를 따로 정의해줘야 합니다. - jest는
jest.config.js
를 따로 작성해줘야 합니다.
코드 커버리지는 https://github.com/istanbuljs/nyc 를 사용하겠습니다.
nodejs
nodejs설치, 프로젝트를 만드는 커맨드를 간단버전으로 살펴보고 가겠습니다. 윈도우즈 환경의 커맨드입니다.
scoop install nvm
nvm install latest
nvm use 14.13.1
mkdir temp3; cd temp3
npm init -y
npm install --save typescript
npx tsc --init
Mocha/Chai
package 설치
npm i -D chai mocha nyc ts-node typescript
npm i -D @types/chai @types/mocha
package.json
|
|
tests/Calculator.test.ts
|
|
test
npm run test
jasmin
자스민은 jasmin.json 이라는 파일의 정의를 필요로 합니다.
package 설치
npm i -D jasmine nyc ts-node typescript
npm i -D @types/jasmine
package.json
|
|
jasmin.json
|
|
jest
jest는 jest.config.js 라는 파일의 정의를 필요로 합니다.
package 설치
npm i -D jest ts-jest typescript
npm i -D @types/jest
package.json
"scripts": {
"test": "jest",
"coverage": "jest --coverage"
}
jest.config.js
|
|
결과
Calculator.ts
|
|
Calculator.test.ts
|
|
기타
최신의 jetbrain webstorm에서는 통합 terminal에서 실행명령을 인식하는 경우가 있습니다. 예를 들면 npm run test
라는 커맨드를 쓰면 녹색으로 변하는 경우가 있는데, 이렇게 highlited 된 커맨드를 ctrl enter를 누르면 run 커맨드가 발동하거나, ctrl shift enter를 누르면 debug 커맨드가 발동하여 break point에서 멈추게 하는 것도 가능합니다.