지난번에 토이프로젝트 배포시에 predeploy script 에 Mocha 테스트를 하도록 했더니 터미널 종료 문제와 타임아웃 시간 재설정이 필요하더라..
갑자기 생각나서 포스팅
Mocha 테스트완료 후 스스로 종료하게 하기
테스트 코드 실행 후 해당 프로세스 종료 시키고 deploy 하고 싶었는데
프로세스 종료가 안 되서 찾아보니 해당 입력 스트림을 직접 꺼주지 않으면 계속 프로세스가 유지된다고 한다.
https://stackoverflow.com/questions/50372866/mocha-not-exiting-after-test
여기선 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와 같이 자주 사용되는 패키지들이 생각보다 굉장히 무겁다는 것을 알았다.
패키지들을 다룰 때 사용법을 꼼꼼히 읽고 평가를 알아보는 습관이 필요한 듯 하다.
'Back-end > Node.js' 카테고리의 다른 글
[Node.js] PM2 Clustering(클러스터링) 시 특정 instance 지칭하기 (0) | 2022.05.01 |
---|---|
[Node.js] 커스텀 에러 만들기/분석해보자 (0) | 2022.04.09 |
Sequelize 사용하기 (0) | 2021.10.18 |
multipart/form-data를 처리하는 패키지 비교 (1) | 2021.10.07 |
Node에서의 Module (0) | 2021.08.09 |