[python] nosetests –pdb 옵션으로 중단 점 설정

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_traceNose와 함께 제공 되는 변형 을 사용 하는 것입니다. 더하다

from nose.tools import set_trace; set_trace()

디버거에 침입하고 싶은 곳이면 어디든. stdin / out 리디렉션이 처리됩니다. 내가 만난 유일한 이상한 부작용 run은 코 실행 중에 디버깅하는 동안 pdb 내에서 코드를 다시 시작할 수 없다는 것입니다 (사용 ).


답변

ipython 이있는 경우 무제한 굉장함을 사용하려면 다음을 사용하십시오.

import ipdb; ipdb.set_trace()

* 무제한 굉장함 : ipython처럼-자동 완성, 채색 등


답변

pytest 를 사용하는 경우 다음을 사용할 수 있습니다.

import pytest; pytest.set_trace()

설명서를 참조하십시오 .


답변