자동화된 테스트에서 Node.js 디버깅
이 항목은 최근 Node.js에서 테스트 자동화를 시작한 사용자에게 유용할 수 있습니다. 이 기사는 테스트 자동화 엔지니어의 POV로 작성되었지만 Node.js를 처음 접하는 모든 초보자에게 유용할 것이라고 확신합니다.
디버깅이란 무엇이고 왜 필요한가요?
Debugging is the process of finding and resolving bugs. 즉, 일부 코드를 실행했는데 예상대로 작동하지 않는 경우 이러한 오작동을 일으키는 코드 줄을 찾습니다.
코드에서 정보를 얻는 방법에는 두 가지가 있습니다.
벌채 반출
나는 당신이 이미 이것에 익숙하다고 생각합니다. 일부 명령을 실행할 때
console.log()
를 사용하여 결과를 콘솔에 기록하기만 하면 됩니다.const result = 2 + 3
console.log(result) // 5
또는
const response = await axios.get(url)
const body = response.data
console.log(body)
익숙한 것 같나요?
디버거 연결
앱의 모든 부분을 기록하는 대신 프로젝트에서 잠시 멈추고 싶은 코드 몇 줄을 가리키고 이 특정 줄에서 무슨 일이 일어나고 있는지 검사하는 것이 좋을 것입니다.
Axios으로 HTTP 요청을 실행했는데 어떤 이유로 테스트가 실패하고 응답 본문이 예상한 것과 일치하지 않는다는 것을 알게 되었다고 가정해 보겠습니다.
디버거를 연결하여 이 sh를 기록할 시간입니다!
비주얼 스튜디오 코드
먼저 테스트가 실행될 때 중지할 코드 줄을 표시(줄 번호 왼쪽 클릭)합니다. 빨간색 점이 중단점입니다.
그런 다음 일반 터미널을 사용하는 대신 `JavaScript 디버그 터미널:
이 터미널에서는 평소와 같이 (
npm test
와 같은) 테스트를 실행하는 데 사용했던 명령을 간단히 사용할 수 있습니다.테스트 실행은 중단점(1)에서 중지됩니다. 현재 코드 줄(2)에서 도달할 수 있는 캐시된 데이터를 볼 수 있습니다.
거기에서 다음 중단점으로 이동하거나(3) 현재 실행을 다시 시작하거나(4) 디버거를 분리할 수 있습니다(5).
VSC에서 디버거를 연결하는 다른 방법을 찾을 수 있지만 저는 이 방법을 선호합니다.
웹스톰
첫 번째 단계의 Visual Studio Code와 매우 유사합니다. 필요한 코드 줄을 중단점으로 표시합니다.
그런 다음 거의 평소와 같이 코드를 실행하지만 대신 디버그(버그) 아이콘을 사용합니다.
테스트 실행은 중단점(1)에서 중지됩니다. 현재 코드 줄(2)에서 도달할 수 있는 캐시된 데이터를 볼 수 있습니다.
거기에서 다음 중단점으로 이동하거나(3) 현재 실행을 다시 시작하거나(4) 실행을 중지할 수 있습니다(5).
결론
디버거는 애플리케이션 캐시에 저장한 데이터를 검사하는 데 도움이 됩니다. 진행 상황을 확인하기 위해 더 이상
console.log()
를 추가할 필요가 없습니다(특히 기록하려는 항목이 둘 이상인 경우).여러분 대부분은 이 방법이 로깅보다 더 유용하고 대화식이라는 데 동의할 것입니다. 또한 전체 섹션(개체/배열)을 접거나 펼칠 수 있으므로 처리할 데이터가 많을 때(예: 매우 긴 배열 또는 개체) 더 읽기 쉽습니다.
읽어 주셔서 감사합니다. 새로운 것을 배웠기를 바랍니다.
Reference
이 문제에 관하여(자동화된 테스트에서 Node.js 디버깅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bormando/nodejs-debugging-in-automated-tests-ead텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)