2016-09-18 3 views
2

그래서 Express 서버를 기반으로 몇 가지 테스트를 실행하는 모카 테스트가 있습니다.모카 서버 정리

내 서버 .js 파일에서 다음 코드를 실행하여 서버 종료 (정상적으로 서버 종료, 일부 정보 로깅, 존재하는 경우 로컬 DB 중지 등)에서 수행되는 정리 작업을 처리합니다.

process.on ('SIGINT', function() { 
    gracefulShutdown(); 
}); 

nodemon server.js과 같은 명령을 실행할 때이 완벽하게 작동합니다. 커맨드 -c를 치면 클린업을 처리하고 모든 것이 완벽하게 진행됩니다.

문제 모카 테스트가 완료된 후에 문제가 발생하기를 바랍니다. 현재 mocha을 실행하면 내 테스트 디렉토리의 모든 테스트가 실행됩니다. 마지막 Mocha 테스트 파일에서 after 함수처럼 그 함수를 실행하는 것에 대해 생각해 보았습니다. 문제는 모카가 실행되는 여러 테스트 파일이 있고 하나의 테스트 파일 만 실행하도록 결정한 경우 해당 기능이 실행되지 않는다는 것입니다. 아마도 각 테스트 파일의 애프터 명령에서 실행할 수있을 것 같지만 그 방법은 가장 논리적 인 방법이 아닙니다.

어떻게 처리 할 수 ​​있습니까? process.on 모카가 완성 되었습니까? 이 문제를 해결할 더 좋은 방법이 있습니까?

+1

당신은'process.on ('exit', function() {})의 exit 이벤트를들을 수 있습니다. ' – Alex

+0

@Alex Great 그 것처럼 보입니다! 자유롭게 대답을 남겨두면 받아 들일 것입니다. –

+1

위대한, 나는 당신을 위해 일하게되어 기쁘다 :) – Alex

답변

3

process.on('exit', function() {}) 듣기 후가 종료하기 전에 프로그램 폐기 것이다 이벤트 처리기의 내부에 정리 코드를 실행,이 SIGINT 후 종료 신호가 방출되기 때문에, exit는 프로세스가 종료 될 때 발생하는 마지막 이벤트입니다 하위.