Mocha 테스트 후, 테스팅 터미널 종료하기+ Mocha default timeout 시간 재설정

Back-end/Node.js

Mocha 테스트 후, 테스팅 터미널 종료하기+ Mocha default timeout 시간 재설정

조커린 2022. 3. 27. 22:58

지난번에 토이프로젝트 배포시에 predeploy script 에 Mocha 테스트를 하도록 했더니 터미널 종료 문제와 타임아웃 시간 재설정이 필요하더라.. 

갑자기 생각나서 포스팅

Mocha  테스트완료 후 스스로 종료하게 하기

 

테스트 코드 실행 후 해당 프로세스 종료 시키고 deploy 하고 싶었는데

프로세스 종료가 안 되서 찾아보니 해당 입력 스트림을 직접 꺼주지 않으면 계속 프로세스가 유지된다고 한다.

 

https://stackoverflow.com/questions/50372866/mocha-not-exiting-after-test 

 

Mocha not exiting after test

I'm starting with tests in Node. Using mocha, chai and nock (to intercept external HTTP api calls). I have written 3 tests, all of them are a pass, however, when I added the 3rd test, mocha stopped

stackoverflow.com

 

여기선 fs 모듈 직접 호출해서 열려 있는 스트림을 종료시키는 방법, 그리고 --exit 옵션으로 모카를 실행시키는 방법이 있었고

난 두 번째 방법을 택했다. 

npx mocha test/*.ts -r ts-node/register --exit

Mocha 타임아웃 시간 설정하기

또한 로컬은 타임아웃 시간 (디폴트 값이 2000ms 이다.) 안쪽으로 테스트가 가능했는데, 오라클 클라우드는 안되더라.

타임아웃 시간 이상으로 시간이 걸리기 때문에 이 값을 다시 재세팅 해주어야 한다. 

 

--timeout 옵션으로 재세팅이 가능하다. 

npx mocha test/*.ts --timeout 10000 -r ts-node/register --exit

 

그리고 왜 이렇게 시간이 좀 걸리는지 알아보니, 네트워크 문제가 컸지만.. Mocha가 무겁고 글로벌 설치 권장 모듈이라고 한다더라. 

최근에 pm2를 다루면서 pm2나, moment와 같이 자주 사용되는 패키지들이 생각보다 굉장히 무겁다는 것을 알았다.

 

패키지들을 다룰 때 사용법을 꼼꼼히 읽고 평가를 알아보는 습관이 필요한 듯 하다.