nosetests --pdb
오류나 실패시 중단하겠습니다. 그러나 이것은 제 요구에 비해 너무 늦었습니다. 실행 중에 코드를 단계별로 실행하면 문제가있는 곳을 디버깅하는 데 도움이됩니다.
그러나 nosetest는 상대적 가져 오기에 의존하는 테스트 (즉, 패키지의 테스트)를 허용하므로 유용합니다.
테스트가 실행되기 전에 중단 점을 어떻게 설정할 수 있습니까? 현재 나는 다음을 사용하고 있습니다.
python -m pdb /path/to/my/nosetests testfile.py
이 솔루션은 적절하지 않습니다. Nosetest는 pdb 출력을 방해하고 키보드 컨트롤 (예 : 화살표 키)이 손상되었습니다.
import pdb 사용; pdb.set_trace ()가 좋은 생각처럼 보이지만 nosetests가 pdb 콘솔에 대한 액세스를 차단하고 있습니다.
답변
추가 할 수 있습니다.
import pdb; pdb.set_trace()
디버거에서 중지하려는 소스의 모든 위치.
-s
코가 잡히지 않도록 코 를 통과해야합니다 stdout
.
답변
-s
사용하는 것을 기억하는 것보다 더 좋은 것은 set_trace
Nose와 함께 제공 되는 변형 을 사용 하는 것입니다. 더하다
from nose.tools import set_trace; set_trace()
디버거에 침입하고 싶은 곳이면 어디든. stdin / out 리디렉션이 처리됩니다. 내가 만난 유일한 이상한 부작용 run
은 코 실행 중에 디버깅하는 동안 pdb 내에서 코드를 다시 시작할 수 없다는 것입니다 (사용 ).
답변
ipython 이있는 경우 무제한 굉장함을 사용하려면 다음을 사용하십시오.
import ipdb; ipdb.set_trace()
* 무제한 굉장함 : ipython처럼-자동 완성, 채색 등