2012-03-20 6 views
4

예외를 throw하는 unittest가 있습니다. 예외는 내 코드에 의해 던져지지 않습니다. 그것은 장고 깊숙한 곳에서 온 것입니다. 그 자리에서 pdb 세션을 열고 무슨 일이 일어나는지보고 싶지만, ipython을 pdb로 열고 run test myapp 테스트를 실행하면 예외가 발생하고 인쇄되지만 pdb는 아무 것도 잡아 내지 못합니다.pdb에서 django unittest 오류 검사

나는 필사적으로 사람의 해결책은 장고의 소스를 열고 내가 조사하고 싶은 자리에 import pdb; pdb.set_trace()을 삽입하는 것 같다. 그러나 더 좋은 방법이 있어야합니다. 내가 뭘 놓치고 있니?

답변

0

코드에 중단 점 (import pdb; pdb.set_trace())을 넣고 프로세스를 검사하지 않는 이유는 무엇입니까? 제 말은 문자 's'를 사용하여 함수 내부에 들어갈 수 있기 때문에 장고 코드까지 깊이 들어가 볼 수 있습니다.

왜 내가 말한대로 중단 점을 사용하는 것이 나쁜 해결책이라고 생각하는지 모르겠다. 사실, 이것이 모든 코드를 디버깅하는 방법입니다.

BTW : ipdb insteand pdb를 시도해보십시오. 당신은 그것을 좋아할 것입니다;)

+0

-1 테스트 주자는 장고 디버거 (예 : 오류가 발생한 곳에서 set_trace를 호출)를 제공해야합니다. 따라서 사용자는 장고와 같은 방대한 패키지의 인터 실 안에서 수동으로이 작업을 수행 할 필요가 없습니다 – twneale

2

아마도 nosetests를 사용하여 --pdb 옵션으로 테스트를 실행하면 효과가 있습니다.

+0

nosetests를 사용하려면/django 나는 https://github.com/jbalogh/django-nose을 좋아한다. – shaunc

관련 문제