-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[#58] 테스트 실행 중지 기능 추가하기 #89
The head ref may contain hidden characters: "58-\uD14C\uC2A4\uD2B8-\uC2E4\uD589-\uC911\uC9C0-\uAE30\uB2A5-\uCD94\uAC00\uD558\uAE30"
Conversation
- 원래는 테스크 큐가 비어 있으면 시뮬레이션을 종료로 침 - 이렇게 되니 아직 시뮬이 돌고있는데 테스크 큐가 비는 상황이 생겨 이 사이에 새 요청을 넣을 수 있고 새 요청은 제대로 처리 못하는 상황이 생김 - 따라서 테스크 큐가 비고 모든 워커가 쉬고 있음을 확인해야 시뮬레이션 종료로 처리
build: { | ||
rollupOptions: { | ||
output: { | ||
inlineDynamicImports: true, | ||
}, | ||
}, | ||
}, | ||
worker: { | ||
format: 'es', | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이건 웹 워커를 사용하는 경우 셋업해줘야하는 vite 설정인데 우선은 무시해주세요. 저도 자세히 몰라서
현재 Build를 실패하는 이슈가 있어서 설정이 제대로 동작하는지 확인을 못하고 있습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM:D
const isRequestSuccess = evaluator.evaluate(tasks); | ||
|
||
if (!isRequestSuccess) { | ||
return; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
isXXX : boolean;
if(!isXXX) return ;
이렇게 하니 가독성 좋네요
function cancelEvaluation() { | ||
evalWorkers.forEach(({ worker }) => worker.terminate()); | ||
evalManager.cancelTasks(); | ||
|
||
const newEvalWorkers = range(0, TOTAL_WORKERS).map(createEvaluator); | ||
evalManager.setNewWorkers(newEvalWorkers); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
네이밍을 잘 하니, 이 코드만 봐도 어떤 일들을 할 지 예상이 가네요. 진짜 좋습니다.
그리고, 워커는 재활용이 아닌가보네요?!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
네, while(true)로 한 스레드가 먹통이 되어버리면 그 스레드를 통째로 드러내야해서 cancel하면 워커를 종료시키고 새로 등록합니다.
좀 더 정밀하게 하자면 쉬고 있는 워커는 놔두고 일하고 있는 워커만 새로 만드는 방법도 있는데, 그건 그냥 귀찮아서... :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 😎
한 일
스크린 샷
변경된 테스트 입력 창
입력창과 입력 결과가 나오는 화면이 분리된 것을 볼 수 있습니다.
테스트 실행 버튼이 아래로 이동했습니다.
무한 루프를 시행한 경우
테스트 코드를 실행하면 테스트 실행이 "실행 취소" 로 변경됩니다.
실행을 취소하면 결과에 "실행 중단" 이라는 문구가 나타납니다.
이를 통해 테스트 수행 중 테스트를 다시 실행할 수 없게 되고, 테스트를 취소할 수 있게 되었습니다.
참조