개발 꿀팁/PYTHON

Python-디버깅 & 유닛 테스트입니다

Jammie 2022. 12. 1. 15:29
반응형

1. 디버깅 기술

(1) 디버깅 프로세스: 유닛 테스트 -> 통합 테스트 -> 테스트부 제출

(2) 분류: i. 정적 디버깅(말하자면 코드를 보고 오류가 있는지 확인하는 것), ii. 동적 테스트입니다.

1.pdb 디버깅 (생략)

2.pycharm 디버깅입니다.

두 가지 모드가 있습니다: (1) run/debug 모드

중단점: 프로그램의 특정 줄, 프로그램은 debug 모드에서 디버깅됩니다.

예:

공부하다가 모르는 게 있으면 저를 추가해 주세요.
python 학습 커뮤니케이션 단추 qun, 784758214
그룹에는 괜찮은 학습 동영상 튜토리얼, 개발 도구 및 전자 서적이 있습니다.
파이썬 기업의 현재 인재 수요와 어떻게 하면 파이썬을 제로베이스에서 잘 배울 수 있는지, 그리고 어떤 내용을 배울 수 있는지 당신과 공유합니다.
#debug 모드입니다

def SayHello(name):

print("I want to say hello with your,{0}".format(name))

print("Hello,{0}".format(name))

print("Done....")

if __name__=="__main__":

print("****"*10)

name = input("Please input your name:")

print(SayHello(name=name))

print("@@@"*10)

디버깅은 다음과 같이 진행됩니다.

(1) pycharm은 2개의 버튼 run과 debug가 있습니다.

run은 우리의 코드를 직접 실행하고 debug는 우리의 코드를 디버깅하는 것입니다

(2) 우리가 어떤 행을 디버깅하려면 그 행의 행 번호 위치를 클릭해야 합니다. 대표적으로 우리가 debug를 클릭하면 프로그램이 이 위치까지 실행이 일시 중단된다는 것을 의미합니다

(3) debug 버튼을 클릭하면 인터페이스 아래에 debugger 창이 뜨는데, 이곳은 디버깅 과정에서 프로그램 내부 변수를 보여 주는 곳입니다

(4) 우리는 이 행으로 일시 정지하고 계속해야 합니다. stepover와 stepinto의 두 가지 버튼이 있습니다.step over는 이 행을 수행하고 다음 행으로 정지한다는 뜻입니다.stepinto는 이 행을 다음 행으로 실행 중지한다는 의미이기도 한데, 그 행에 코드가 들어 있는지 아닌지에 따라 다릅니다

(5)예를 들어볼까요?

stepinto를 클릭하면 이 인터페이스로 전환됩니다. 이 input 문장이 어떻게 작동하는지 보라는 뜻입니다. 우리는 이 줄이 틀림없다는 것을 알고 있기 때문에 그것을 봐도 소용이 없습니다

(6) 그러므로 우리는 step out을 클릭해서 이 인터페이스를 벗어나서 우리의 아까 인터페이스로 돌아갑니다 우리는 step over를 클릭해서 이 문장을 실행하면 됩니다. 코드를 볼 필요가 없습니다

(7) 저는 에세이에서 표시 1과 같은 몇 개의 글자를 입력했는데, 방금 그 문구 뒤에 표시 2(debugger에도 나와 있습니다, 저는 캡쳐하지 않았습니다, 어디서 봐도 좋습니다), 그리고 프로그램은 한 단계 아래로 내려갔습니다

파이썬에 관심이 있거나 배우고 있는 친구들은 저희 파이썬 학습버튼 qun:784758214에 가입하셔서 선배님들이 어떻게 공부하시는지 보세요!기초적인 파이썬 스크립트부터 웹 개발, 크롤러, 디장고, 데이터 마이닝까지 기초 제로부터 프로젝트 실전 자료까지 정리했습니다.파이썬 친구들 한 명 한 명에게 드립니다!공부하는 방법과 주의해야 할 작은 세부 사항들을 공유하고, 공부하면서 파이썬으로 돈을 버는 학습 방식을 구현하는 방법을 가르쳐 줍니다.python 학습자 모임 장소 가입을 누르십시오

(8) 이때 우리는 stepinto를 클릭하는데, (이것이 stepover를 클릭하지 않는 이유는 이 어구 안에 함수가 있기 때문입니다. 구체적으로 어떻게 실행되는지, 어떤 오류가 있는지 보고 싶습니다.물론 step over를 클릭하셔도 됩니다, 그는 바로 함수를 실행해 주셨습니다, 하지만 우리의 목적은 프로그램이 구체적으로 어떻게 실행되는지 보기 위해서입니다, 그래서 들어갔습니다), 보세요, 예상대로 프로그램이 함수 안으로 들어갔고, 그 뒤에는 차근차근 디버깅이 되었습니다

 

반응형